当前位置: 移动技术网 > 科技>操作系统>windows > 简单推算冒泡排序和选择排序

简单推算冒泡排序和选择排序

2020年07月24日  | 移动技术网科技  | 我要评论

冒泡排序

实现原理:在冒泡排序的过程中,按照要求从小到大排序或从大到小排序,不断比较数组中相邻两个元素的值,将值最大的元素或最小的元素交换至右端。

冒泡排序的优点(从小到大排序):每进行一趟排序,就会少比较一次,因为每进行一趟排序都会找出一个较大值。第一趟比较之后,排在最后的一个数一定是最大的一个数,第二趟排序的时候,只需要比较除了最后一个数以外的其他的数,同样也能找出一个最大的数排在参与第二趟比较的数后面。

<script>
		var arr = [10, 6, 5, 27, 98, 22];
        for (var i = 0; i < arr.length - 1; i++) { // 控制需要比较的轮数
            for (var j = 0; j < arr.length - 1 - i; j++) { // 控制参与比较的元素,由于每完成一次完
            //整的内循环都会将最大的一个值排在最后面,所以下一轮时最大值不用参与比较,所以需要减i
                if (arr[j] > arr[j + 1]) {
                    [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
                }
            }
        }
        console.log('排序后的结果' + arr);
        // i=0 arr[j],arr[j+1] 
        //      0 10    1  6    6,10,5,27,98,22
        //      1 10    2  5    6,5,10,27,98,22
        //      2 10    3 27    6,5,10,27,98,22
        //      3 27    4 98    6,5,10,27,98,22
        //      4 98    5 22    6,5,10,27,22,98
        // i=1 arr[j],arr[j+1]
        //      0  6    1  5    5,6,10,27,22,98
        //      1  6    2 10    5,6,10,27,22,98
        //      2 10    3 27    5,6,10,27,22,98
        //      3 27    4 22    5,6,10,22,27,98
        //      4 27    5 98    5,6,10,22,27,98 这里可以不用比较所以减i
</script>

选择排序

实现原理:从头至尾扫描序列,找出最小的一个元素,和第一个元素交换,接着从剩下的元素中继续这种选择和交换方式,最终得到一个有序序列。

<script>
    var arr = [10, 6, 5, 27, 98, 22];

    for (var i = 0; i < arr.length; i++) {
        for (var j = i + 1; j < arr.length; j++) {
            if (arr[i] > arr[j]) {
                var temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
                console.log('排序后的数组:' + arr);
            }
        }
    }
        //i=0 j=1时有两次交换 第一次是10和6比较交换,第二次是6和5进行比较交换
    //第一次结果6,10,5,27,98,22
    //第二次结果5,10,6,27,98,22
    //i=1 j=2时有一次交换 10和6进行比较交换
    //第一次结果5,6,10,27,98,22
    //i=3 j=5时有一次交换 27和98进行比较交换
    //第一次结果5,6,10,22,98,27
    //i=4 j=5时有一次交换 98和27进行比较交换
    //第一次结果5,6,10,22,27,98
</script>

本文地址:https://blog.csdn.net/m9311/article/details/107524964

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网