首页 > 技术文章 > 选择排序

omelet 2017-03-21 21:28 原文

选择排序的基本思想:对于给定的一组元素,经过第一轮比较后得到最小的元素,然后将该元素与第一个元素的位置进行交换,接着对不包括第一个元素以外的其他记录进行第二轮比较,得到最小的元素并与第二个位置交换,重复该过程,直到进行比较的元素只有一个为止。

数组{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; } };

 

}

推荐阅读