1.选择排序

选择排序算法描述:

repeat (numOfElements - 1) times

  set the first unsorted element as the minimum

  for each of the unsorted elements

    if element < currentMinimum

      set element as new minimum

  swap minimum with first unsorted position

文字描述:一个元素个数为n的数组,循环n-1次,在循环中,将未排序元素的第一个元素(为选定的元素)作为最小值,然后对这个元素其后的每一个元素进行遍历,若某一元素小于那个最小值,则将这一元素设置为最小值(也就是找出在选定元素之后,且小于选定元素的那一个元素),最后将最小值和选定的元素交换.

void selectionSort(int arr[], int n){

    for(int i = 0 ; i < n-1 ; i ++){
        // 寻找[i, n)区间里的最小值
        int minIndex = i;
        for( int j = i + 1 ; j < n ; j ++ )
            if( arr[j] < arr[minIndex] )
                minIndex = j;
        swap( arr[i] , arr[minIndex] );
    }
}

说白了,选择排序就两步,遍历和找最小值
从i = 0遍历到i = n-2,然后找[i,n)这个区间的最小值,把这个最小值放到i的位置然后进行下一趟迭代.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容