首页 > 代码库 > 选择排序

选择排序

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

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

 

}

选择排序