C++排序算法之冒泡排序

来源:互联网 发布:软件添加广告sdk 编辑:程序博客网 时间:2024/06/14 02:23

冒泡排序:顾名思义,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,就像冒泡泡一样。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

代码如下(从大到小):

#include<cstdio>int main(){int n; //数的个数int num[10000]; //排序范围:最多10000个数scanf("%d",&n);for(int i=0;i<n;i++) //输入每个数scanf("%d",&num[i]);for(int i=0;i<n-1;i++) //冒泡排序for(int j=0;j<n-i;j++)if(num[j]<num[j+1]){int swap=num[j];num[j]=num[j+1];num[j+1]=swap;}for(int i=0;i<n;i++)printf("%d ",num[i]);}

还有改进版的:

#include<cstdio>#include<cstdlib>int main(){int n,num[10000];bool mark;scanf("%d",&n);for(int i=0;i<n;i++)scanf("%d",&num[i]);for(int i=0;!mark;i++){mark=true;for(int j=0;j<n-i;j++)if(num[j]<num[j+1]){int swap=num[j];num[j]=num[j+1];num[j+1]=swap;mark=false;}}for(int i=0;i<n;i++)printf("%d ",num[i]);}


得意

原创粉丝点击