JS选择排序法

 选择排序法

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>Document</title>

</head>

<body>

    <script>

        // 选择排序

        // 思路:假定0就是最小的 定义一个索引指向0 挨个比较 如果它比别的数大 就将索引 指向更小的数

        // 再拿着这个新数从这个新数往后比较 直到最后 这么一轮下来就能够确定一个最小的数

        // 将0位置与该数位置更换4

        // 第二轮 假定1是第二小的数 定义一个索引只想1 挨个比较 如果比别的数大 就将索引 指向更小的数

        // 再拿着这个新数从这个新数往后比较 直到最后 这么一轮下来就能够确定一个第二小的数

        // 依次类推

        // 举例说明

        // var arr = [10, 17, 5, 88, 54, 0, 23, 11, -10, 9];

        // 先拿着10 与后面的数比较 如果10比5大 说明10不是最小的 于是将索引指向5 拿着5继续往后比 如果又遇见了比5还小的数

        // 更换索引 继续拿着新数往后比较  一轮下来确定一个最小的数

        // 定义索引 用于指向最小的数字的下标

        // var index = 0;

        // // 定义已经循环了几轮 已经有几个数排好顺序

        // var sub = 0;

        // // 开始循环

        // for (var i = 1; i < arr.length; i++) {

        //     // 判定 如果当前index指向的不是最小的 就让它指向最小的

        //     if (arr[index] > arr[i]) {

        //         index = i;

        //     }

        // }

        // console.log(index);

        // // 当循环结束之后index已经指向最小的 于是就换位

        // var temp = arr[sub];

        // arr[sub] = arr[index];

        // arr[index] = temp;

        // 以上代码是第一轮的执行经过

 

        var arr = [10, 17, 5, 88];

        // 以下代码是多次执行的经过

        for (var j = 0; j < arr.length - 1; j++) {

            // 定义索引 用于指向最小的数字的下标

            var index = j;

            // 定义已经循环了几轮 已经有几个数排好顺序

            var sub = j;

            // 开始循环

            for (var i = j + 1; i < arr.length; i++) {

                // 判定 如果当前index指向的不是最小的 就让它指向最小的

                if (arr[index] > arr[i]) {

                    index = i;

                }

            }

            console.log(index);

            // 当循环结束之后index已经指向最小的 于是就换位

            var temp = arr[sub];

            arr[sub] = arr[index];

            arr[index] = temp;

        }

    </script>

</body>

</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值