选择排序

来源:互联网 发布:盛势网络剧台湾未删减 编辑:程序博客网 时间:2024/06/11 12:49
#include<cstdio>//选择排序,n表示数组a中有几个数。void downchoose(int &n,int a[])//从大到小排序 {int max,min;for (int i=0;i<n/2-1;i++){max=i;min=i;    //找最大最小数编码 for (int j=i;j<n-i;j++){            if(a[min]>a[i]) min=i;               if(a[max]<a[i]) max=i;}//交换最大最小两数位置int q=a[max];a[max]=a[0];a[0]=q;int p=a[min];a[min]=a[n-1];a[n-1]=p;}}void upchoose(int &n,int a[])//从小到大排序 {int max,min;for (int i=0;i<n/2-1;i++){max=i;min=i;for (int j=i;j<n-i;j++){            if(a[min]>a[i]) min=i;               if(a[max]<a[i]) max=i;}int q=a[max];a[max]=a[n-1];a[n-1]=q;int p=a[min];a[min]=a[0];a[0]=p;}}

这是优化后选择排序的函数,选择排序方便,在低级排序算法中算快的,选最大最小,与首尾互换 ,直到全部换完为止。

算法简单,时间复杂度较高。

1 0
原创粉丝点击