冒泡排序C_整理
来源:互联网 发布:windows 10 to go教程 编辑:程序博客网 时间:2024/06/09 15:11
冒泡排序的原理
交换代码:
- void swap(int *a, int *b)
for (i_cnt = 0; i_cnt < WIFIAP_CNT; i_cnt++){ for (j_cnt = WIFIAP_CNT-1; j_cnt < i_cnt; j_cnt--){ if (resp->stWifiAp[j_cnt].signal > resp->stWifiAp[j_cnt-1].signal){ swap_ap(&resp->stWifiAp[j_cnt], &resp->stWifiAp[j_cnt-1]); }if (strcmp(resp->stWifiAp[j_cnt].ssid, stWifiAp_singal_max->ssid) == 0){//swap_ap(&resp->stWifiAp[j_cnt], &resp->stWifiAp[devicecount-1]);devicecount --;resp->stWifiAp[j_cnt].signal = 0;printf("ssid: %s, cnt: %d\n", resp->stWifiAp[j_cnt].ssid, j_cnt);} } }
- {
- int c;
- c = *a;
- *a = *b;
- *b = c;
- }
思路都了解,下面的算法仅供参考。
简单算法:两个for循环,都执行n次
复杂度 :n的平方
核心代码:
- int out, in, min;
- for (out = 0; out < total; out++){
- min = num[out];
- for (in = 0; in < total; in++){
- if(min > num[in]){
- swap(&min, &num[in]);
- }
- }
- }
复杂度:约为n的平方
核心代码:
- int out, in;
- for (out = 0; out < total; out++){
- for (in = total-1; in > out; in--){
- if(num[in] > num[in-1]){
- swap(&num[in], &num[in-1]);
- }
- }
- }
针对执行此时:执行方向优化
核心代码:
- int out,in;
- for (out = total - 1; out > 1; out--){
- for (in = 0; in < out; in++){
- if(num[in] < num[in-1]){
- swap(&num[in],&num[in+1]));
- }
- }
- }
针对内存占用减少:添加一个flag
复杂度:最好为n,最差,flag失效。
核心代码:
- int out, in, flag = 1;
- for (out = 0; out < total && flag; out++){
- flag = 0;
- for (in = total-1; in > out; in--){
- if(num[in] > num[in-1]){
- swap(&num[in], &um[in-1]);
- flag = 1;
- }
- }
- }
针对wifi获取列表信息,信号强弱排序,删除重复网络ssid
for (i_cnt = 0; i_cnt < WIFIAP_CNT; i_cnt++){for (j_cnt = WIFIAP_CNT-1; j_cnt < i_cnt; j_cnt--){if (resp->stWifiAp[j_cnt].signal > resp->stWifiAp[j_cnt-1].signal){swap_ap(&resp->stWifiAp[j_cnt], &resp->stWifiAp[j_cnt-1]);}if (strcmp(resp->stWifiAp[j_cnt].ssid, stWifiAp_singal_max->ssid) == 0){//swap_ap(&resp->stWifiAp[j_cnt], &resp->stWifiAp[devicecount-1]);devicecount --;resp->stWifiAp[j_cnt].signal = 0;printf("ssid: %s, cnt: %d\n", resp->stWifiAp[j_cnt].ssid, j_cnt);}}}
阅读全文
2 0
- 冒泡排序C_整理
- c_冒泡排序
- 冒泡排序笔记整理
- 关于冒泡排序整理
- java冒泡排序整理
- C_关于qsort和sort排序方法的相应整理
- 算法整理-排序(冒泡)
- 冒泡排序的一些整理
- C_笔记整理_1
- C_笔记整理_2
- C_笔记整理_3
- C_笔记整理_4
- C_笔记整理_5
- 排序算法整理之冒泡排序
- 排序算法整理(4)冒泡排序
- C_快速排序
- C_插入排序
- 个人学习整理:C++版冒泡排序
- python009 Python3 列表
- python010 Python3 元组
- 直接赋值还是先判断
- p5.js入门教程(5) 键盘交互
- python011 Python3 字典
- 冒泡排序C_整理
- Windows下用phpStudy建站和mysql安装说明
- 关于Rigidbody,Collider和CharacterController三者之间的关系和用法的总结
- python012 Python3 编程第一步
- PAT甲级1007. Maximum Subsequence Sum
- python013 Python3 条件控制
- U盘安装CentOS 7终极方案,简单有效
- 04-SpringBoot——Spring常用配置-Bean的Scope
- python013 Python3 循环语句