简单选择排序是指对一个序列A种的元素A[1]-A[n],令i从1到n枚举,进行n次操作,每趟从待排序部分[i,n]中选择最小的元素,令其与待排序部分的第一个元素A[i]进行交换,这样元素A[i]就会与当前有序区间[1,i-1]形成心得有序区间[1,i]于是在n次排序后所有元素就会是有序的。
1.选择排序
int selectSort(int A[],int n){ for(int i=0;i<=n;i++){ for(int j=i;j<=n;j++){ if(A[i]>A[j]){ int tmp; tmp=A[i]; A[i]=A[j]; A[j]=tmp; } } } return 0; }
2.插入排序
对序列A的n个元素A[1]-A[n],令i从2到n枚举,进行n-1趟操作。假设某一趟,序列A的前n-1个元素A[1]-A[i-1]已经有序,而范围[i,n]还未有序,那么该趟从范围[1,i-1]中寻找某个位置j后(此时A[j]-A[i-1]会后移一位至A[j+1]-A[i]),使得将A[i]插入位置j后,范围[1,i]有序。
int A[maxn],n; void insertSort(){ for(int i=2;i<=n;i++){ int tmp=A[i],j=i; while(j>1&&tmp<A[j-1]){ A[j]=A[j-1]; j--; } A[j]=tmp; } }
3.排序函数
C语言的库函数qsort
C++的sort函数