选择排序的基本思想:对于给定的一组元素,经过第一轮比较后得到最小的元素,然后将该元素与第一个元素的位置进行交换,接着对不包括第一个元素以外的其他记录进行第二轮比较,得到最小的元素并与第二个位置交换,重复该过程,直到进行比较的元素只有一个为止。
数组{38,65,97,76,13,27,49}
第一趟排序:13 [ 65 97 76 38 27 49 ]
第二趟排序:13 27 [97 76 38 65 49 ]
第三趟排序:13 27 38 [ 76 97 65 49 ]
第四趟排序:13 27 38 49 [ 97 65 76 ]
第五趟排序:13 27 38 49 65 [ 97 76 ]
第六趟排序:13 27 38 49 65 76 [ 97]
第七趟排序:13 27 38 49 65 76 97
class SelectionSort { public: int* selectionSort(int* A, int n) { // write code here for(int i=0;i<n;i++) { int index = i;//记录最小值存在的位置
for(int j=i+1;j<n;j++) { if(A[index]>A[j]) { index = j; } } swap(A[i],A[index]);//将最小值和对应位置的值进行交换
} return A; } };
}