冒泡排序及其改进算法
2013-05-09 10:59
239 查看
//1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。 //2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。 //3.N=N-1,如果N不为0就重复前面二步,否则排序完成。 /* # include<stdio.h> void Bubble_Sort(int A[],int n) { int i,j,temp; for(i=0;i<n;i++) for(j=0;j<n-i-1;j++) { if(A[j]>A[j+1]) { temp=A[j]; A[j]=A[j+1]; A[j+1]=temp; } } } void main() { int A[]={1,5,4,32,5,7}; Bubble_Sort(A,6); for(int i=0;i<6;i++) printf("%d ",A[i]); printf("\n"); }//不管有没有数据交换,均要进行比较 */ //冒泡排序的改进方式,根据判断flag,来确定是否有数据元素的交换,如果哪一趟没有数据交换,则退出循环 # include<stdio.h> void swap(int *p1,int *p2) { int temp; temp=*p1; *p1=*p2; *p2=temp; } void Bubble_Sort1(int A[],int n) { int i,k; k=n; bool flag=true; while(flag) { flag=false; for(i=1;i<k;i++) { if(A[i-1]>A[i]) { swap(&A[i-1],&A[i]); flag=true; } } k--; } } void main() { int A[]={0,8,7,5,9,4,1,3}; Bubble_Sort1(A,8); for(int i=0;i<8;i++) printf("%d ",A[i]); printf("\n"); }
相关文章推荐
- 冒泡排序及其改进算法C语言实现
- 算法学习之排序——冒泡排序及其改进算法(Java)
- 冒泡排序及其改进算法
- 冒泡排序及其改进算法
- 求质数(素数)算法及其改进
- 冒泡排序的算法分析与改进
- Kmeans及其改进算法的Matlab解析与实现
- 冒泡排序及其改进
- 第十六周项目4——算法验证归并排序及其算法改进
- Dropbox差异同步算法rsync及其改进算法原理
- Dropbox差异同步算法rsync及其改进算法原理
- 基础算法之排序(1)--冒泡排序 改进
- 算法系列(四)归并排序及其改进(java实现)
- 排序算法-对冒泡排序的优化改进算法
- PHP算法学习之“简单的交换排序”,“冒泡排序”以及“改进后的冒泡排序”
- KMP及其改进算法
- [置顶] KNN及其改进算法的python实现
- Dropbox差异同步算法rsync及其改进算法原理
- OTSU算法及其改进算法学习
- 冒泡排序及其改进