冒泡排序

来源:互联网 发布:骑行组队软件 编辑:程序博客网 时间:2024/05/20 11:32

基本排序算法

/*
排序:只讨论比较排序
 只讨论内部排序
 稳定性    数值相等的两个数,排序前后相对位置不变
 没有一种排序是任何情况下都表现最好的
*/
//冒泡排序:每次筛选出最大值
//时间复杂度不变O(N2)

void Bubble_Sort(ElementType a[],int N){int P;int i;for(P = N-1;P >= 0;P--)for(i=0;i<P;i++){if( A[i]>A[i+1])swap(A[i],A[i+1]);}}

//对基本冒泡排序进行优化
//事件复杂度最好情况O(N)
//最坏情况O(N2)

void Bubble_Sort(ElementType a[],int N){int flag ;for(int P = N-1;P >= 0;P--){flag = 0;//定义标志位,每一次循环清零for(int i=0;i<P;i++){if( A[i]>A[i+1]){swap(A[i],A[i+1]);flag = 1;//若该次循环全程存在交换,flag标志位置一}}if(flag == 0) break;//若标志位为零,此次外围for的一次循环全程无交换}}




0 0
原创粉丝点击