选择排序 Selection Sort

思路:
每次从数组中选出最小的那一个元素,排在最前面。
本质与冒泡排序很像,只有具体实现的区别,冒泡策略是“交换两个数”,所以位置上的数会因交换而不断变化;选择排序每次是要找到最小元素的位置,最后进行一次交换,把最小的放到当前的位置。
时间复杂度:O(n^2)
空间复杂度:O(1)

var array = [5,4,6,3,7,1];

function selectionSort(array) {
    for(var i=0;i<array.length-1;i++){ // start sort
        var min = array[i]; // pick the current element as mininal number
        var minindex = i; // pick current index as minimal number's index
        for(j=i+1;j<array.length;j++){ // only compare with the later elements
            if(array[j]<min){
                min = array[j]; // record the smaller number 
                minindex = j; // record the smaller number's index
            }
        }
        array[minindex] = array[i]; // switch 
        array[i] = min; // switch 
    }
    return array;
}

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

相关阅读更多精彩内容

友情链接更多精彩内容