Select Sort 的理解

Explain with a pic

选择排序.jpg

Pseudo-Code

WHILE UnsortedSize > 0
    FIND the smallest value in the unsorted set AS the MIN 
    // 在未排序的集合中,按顺序查找一个最小值

    SWAP the MIN and the First element of the unsorted set 
    // 将这个最小值和未排序第一个元素交换

    UnsortedSize decrease // 未排序集合减少一个元素
END WHILE

Example

The Size of the array is ZERO?

数组大小为零的情况.jpg

The Size of the array is ONE?

数组大小为1的情况.png

General Condition?

一般情况.jpg

C code

void SelectSort(int arr[], const int arrsize){
    if(arrsize == 0) return;
    for(int UnsortedSize = arrsize; UnsortedSize > 0; UnsortedSize--){
        int Unsorted_Left = arrsize - UnsortedSize; // 未排序集合左边界(包含)
        int Unsorted_Right = arrsize - 1; // 未排序集合右边界(包含)
        int MIN = Unsorted_Left; // 假定从左边界开始寻找最小值
        for(int i = Unsorted_Left; i <= Unsorted_Right; i++){
            if(arr[i] < arr[MIN]){
                MIN = i;
            }
        } // 实际上,MIN只是一个下标
        int temp = arr[Unsorted_Left];
        arr[Unsorted_Left] = arr[MIN];
        arr[MIN] = temp;
        // 将值最小的元素和未排序集合最左元素交换
    }
    return;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天晚上天气很好,可以看见天上的白云。 月亮就像成熟的奶酪一样圆润。天空则是深蓝的。 刚开始,天空中的云如同棉絮一...
    劭翀阅读 245评论 0 0
  • 幻听雷剧? 文/冯小敏 国庆中秋放假8天,因人生地不熟,我没去玩也没去兼职,而是一直呆在宿舍里,按时吃饭,早睡早起...
    半床诗阅读 245评论 0 3
  • 周一 没有课的日子 于我而言 是自由 我喜欢这种感觉 跑步 读书 练字 听起来就是一种健康无比的生活 如果再加上...
    一百冬阅读 154评论 0 0
  • 9月底,2016年西部慈善论坛在成都举办,参访地之一正是明月村。当时遗憾没有成行,十一假期终于抽时间,把这一趟补了...
    薄心弥陀阅读 2,653评论 0 0