直接選擇排序(Straight Select Sorting) 也是一種簡單的排序方法,它的基本思想是:第一次從R[0]~R[n-1]中選取最小值,與R[0]交換,第二次從R{1}~R[n-1]中選取最小值,與R[1]交換,...., 第i次從R[i-1]~R[n-1]中選取最小值,與R[i-1]交換,.....,第n-1次從R[n-2]~R[n-1]中選取最小值,與R[n-2]交換,總共通過n-1次,得到一個按排序碼從小到大排列的有序序列. c語言實現如下: [cpp] #include <stdio.h> //打印數組 void display(int array[],int size){ printf("the array is:"); int i; for(i=0;i<size;i++){ printf("%d ",array[i]); } printf("\n"); } //直接選擇排序 void sort(int array[],int size){ int i,j,small,temp; for(i=0;i<size;i++){ //將i假設為最小的 small = i; //從i+1開始遍歷,找到最小的但是比i大的數的下標 for(j=i+1;j<size;j++){ if(array[j]<array[small]){ small = j; } } //將i和找到的最小的數交換 temp = array[i]; array[i] = array[small]; array[small] = temp; display(array,size); } } int main(void){ int array[10]={34,45,1,39,21,68,65,100,4,51}; display(array,10); //直接選擇排序 sort(array,10); return 0; }