冒泡排序(bubble_sort)详解
来源:互联网 发布:淘宝帐号已被限制登录 编辑:程序博客网 时间:2024/05/16 11:24
前提:
1.不考虑超大数据等特殊情况
#include<iostream>using namespace std;void bubble_sort(int a[],int h,int t);int main(){ //测试数据 int a[11]={1,49,60,12,-12,101,121,62,60,8,-100}; int len=sizeof(a)/sizeof(a[0]); bubble_sort(a,0,len-1); //输出结果 for(int i=0;i<len;i++) { cout<<a[i]<<" "; } cout<<endl;}//冒泡排序void bubble_sort(int a[],int h,int t){ int flag=0; int temp=0; for(int i=h;i<=t;i++) { for(int j=0;j<=t-1-i;j++) { if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; flag=1; } } //加入哨兵变量flag是控制循环次数。当序列已经排好时,及时终止函数。 if(1==flag) { flag=0; }else{ return; } }}
算法分析:
1.时间复杂度:核心在于嵌套的for循环,显而易见,复杂度为O(n^2)。
2.缺陷改进:传统的冒泡排序有一大缺陷,就是无法判断排序已经完成。为了弥补这个缺陷,在程序中加入哨兵变量flag,初始值设为0,一趟循环过后,如果没有发生元素交换,则结束当前函数。 这样就可以省掉传统算法中排好序后还会进行的赘余循环。
- 冒泡排序(bubble_sort)详解
- 冒泡排序(Bubble_Sort)
- 冒泡排序(Bubble_Sort)
- 一天一排序之“冒泡排序(Bubble_sort)”
- 实现bubble_sort<冒泡法>
- 排序算法之冒泡排序<Bubble_Sort>及其C语言代码实现
- 自己完成一个冒泡排序(bubble_sort),可以完成不同类型数据的排序
- 自己实现一个bubble_sort(冒泡排序),可以完成不同类型数据的排序
- 使用数组和指针的形式实现冒泡排序,并优化。bubble_sort();
- 排序详解:冒泡排序
- bubble_sort
- bubble_sort
- bubble_sort
- Bubble_sort
- bubble_sort
- Bubble_sort
- BUBBLE_SORT
- 冒泡排序详解
- 10年程序人生感悟(一)
- Android导航菜单横向左右滑动并和下方的控件实现联动
- SCM600 Study Note
- 在ruby使用ssh连接linux服务器
- 行飞档位的夜晚可见系统
- 冒泡排序(bubble_sort)详解
- 关于return、exit、continue和break的比较
- Java中的访问权限
- 几例从数据到结论的案例
- openssl及安全分析测试方法
- hadoop应用与开发
- matlab GUI之常用对话框(一)---uigetfile\ uiputfile \ uisetcolor \ uisetfont
- ADS8344数据采集
- 10年程序人生感悟(二)