冒泡排序
Posted spore
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序相关的知识,希望对你有一定的参考价值。
/******************* 冒泡排序:稳定排序 S=O(1),T=O(n*n) ********************/ #include <stdio.h> #include <stdbool.h> int main() int a[10],i; printf("请输入10个数据:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("冒泡排序后的数据为:\n"); BubbleSort(a,10); for(i=0;i<10;i++) printf("%d ",a[i]); return 0; int BubbleSort(int A[],int n) int i,j,t; bool flag = false; //当整个序列有序的时候,标志位是不发生修改的,从而表示已排好序 for(i=0;i<n-1;i++) //进行n-1趟排序 for(j=n-1;j>i;j--) //一趟排序过程 if(A[j]<A[j-1]) //如果后面的元素比前面元素小则交换 t = A[j]; A[j] = A[j-1]; A[j-1] = t; flag = true; //发生了数据交换,修改标志位 if(flag==false) //本趟没有发生交换,说明已经有序 return 0;
以上是关于冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章