爱痧一族,叶剑英之子坐轮椅现身,厦门brt
基本思想:两数比较大小,较大数后移,较小数前移
平均时间复杂度:o(n2)
代码实现:
void bubblesort(int arr[],int len) { int temp, i, j; for (i = 0; i < len - 1; i++) { for (j = 0; j < len - 1 - i; j++) { if (arr[j] > arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } }
针对问题:顺序排好后,冒泡排序可能会继续下一轮循环,直到满足退出条件
优化方案:若本轮没有发生两数交换,则退出循环
void bubblesort(int arr[],int len) { int temp, i, j,flag; for (i = 0; i < len - 1; i++) { flag = 0 for (j = 0; j < len - 1 - i; j++) { if (arr[j] > arr[j + 1]) { flag = 1;/*发生两数交换,flag 置为 1*/ temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } if (flag == 0) { break; } } }
基本思想:第 i 次遍历数组,找出最小的数值与第 i 个元素交换
平均时间复杂度:o(n2)
代码实现:
void sort(int a[],int n){ int i,j,min,t; for(i=0;i<n-1;i++){ min=i; for(j=i+1;j<n;j++){ if(a[j]<a[min]){ min=j; } } if(min!=i){ t=a[i]; a[i]=a[min]; a[min]=t; } } }
参考资料:
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论