本人是一名普通大学生用这个平台记录学习过程
冒泡排序(Bubble sort)是一种非常直观的排序算法,核心内容是在一次次的遍历的过程中,一次比较前后两个数据,如果他们的顺序错误就交换两个数据,这样最大或最小的元素就会浮到顶端,冒泡排序也因此而得名。
下面通过动图来看过程(从网上借鉴的),其实学算法就是要多画图理解
void BubbleSort(int *a,int len) { for(int i=0;ia[j+1]) { int temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } }
这个算法还有一种优化算法,立个flag,遍历了一遍发现没有发生交换,就可以直接退出
void BubbleSort(int *a,int len) { for(int i=0;ia[j+1]) { int temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; flag=0; } } if(flag==1)//遍历一遍之后都没有发生交换。直接退出 break; } }
算法复杂度分析:时间复杂度O(n^2),最坏情况,数组是倒序的,空间复杂度O(1)
稳定性分析:这个算法非常稳定
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)