选择排序

 //选择排序
    //时间复杂度为O(n*n)  时间复杂度为O(1)
    //是不稳定的排序,如果有数组[2,5,7,2,1,9]在排序过程中会把第一个2与1交换,
    //此时原序列中的两个2的顺序就破坏了。

    var arr = [1, 6, 8, 5, 2, 9];
    len = arr.length;
    //首先遍历数组次数,到达最后一个数的时候就不用比较了
    for (var i = 0; i < len - 1; i++) {
        //默认最小序列为i
        minfigure = i;
        //遍历剩下所有序列,找到最小数的序列号
        for (var j = i + 1; j < len; j++) {
            //比较两数,获取最小数的序列号
            if (arr[j] < arr[minfigure]) {
                //记录最小序列号
                minfigure = j;
            }
        }
        //进行排序交换
        var temp = arr[i];
        arr[i] = arr[minfigure];
        arr[minfigure] = temp;
    }
    console.log(arr);
posted @ 2020-12-12 00:34  蛰鸣  阅读(23)  评论(0编辑  收藏  举报