• JavaScript中数组的二分查找、冒泡排序、转置


    二分查找

    前提:该数组是有序的,如果不是有序的,则不能使用二分查找

    //定义一个数组
            arr = [1, 6, 8, 9, 45, 67, 89];
    
            function find(arr, findVal, leftIndex, rightIndex) {
                // 防止无穷递归
                if (arr[leftIndex] > arr[rightIndex]) {
                    document.writeln("找不到");
                    return;
                }
                //找中间值
                //floor()对一个数进行下舍入
                var midIndex = Math.floor((leftIndex + rightIndex) / 2);
                var midValue = arr[midIndex];
                //递归 
                if (midValue > findVal) {
                    find(arr, findVal, leftIndex, midIndex - 1);
                } else if (midValue < findVal) {
                    find(arr, findVal, midIndex + 1, rightIndex);
                } else {
                    document.writeln(midIndex);
                    return;
                }
    
            }
    
            // 测试
            find(arr, 45, 0, arr.length - 1);
        </script>

    冒泡排序

    原理:相邻的两个元素之间进行比较

      <script type="text/javascript" language="javascript">
            //冒泡排序
            var arr = [5, 0, -56, 900, 12, 9];
            var temp = 0;
            for (var i = 0; i < arr.length - 1; i++) {
                for (var j = 0; j < arr.length - i; j++) {
                    if (arr[j] > arr[j + 1]) {
                        temp = arr[j + 1];
                        arr[j + 1] = arr[j];
                        arr[j] = temp;
                    }
                }
            }
            console.log(arr);
        </script>

    数组转置

    数组转置就是行列互换

    <script type="text/javascript" language="javascript">
             // 转置,就是行列互换
            var arr = [
                [2, 4, 6, 8],
                [8, 9, 0, -1],
                [9, 6, 2, 3]
            ];
            var arr_new = [];
            
            //初始化新数组的元素,确定一下新数组一共有多少行
            for(var i=0;i<arr[0].length;i++){
                arr_new[i]=[0];
            }
    
            //转置
            for(var i=0;i<arr.length;i++){
                //遍历每个具体的值
                for(var j=0;j<arr[i].length;j++){
                    arr_new[j][i]=arr[i][j];
                }
            }
    
            //输出新数组
            for(var i=0;i<arr_new.length;i++){
                for(var j=0;j<arr_new[i].length;j++){
                    document.writeln(arr_new[i][j]+"&nbsp");
                }
                document.writeln("<br/>");
            }
        </script>
  • 相关阅读:
    实验四 主存空间的分配和回收模拟
    实验一
    实验3观后感
    实验三进程调度模拟程序
    实验2作业调度
    0909 学习操作系统
    实验四 主存空间的分配和回收模拟
    实验三 同学互评
    实验三 进程调度模拟程序
    实验二 作业调度模拟程序
  • 原文地址:https://www.cnblogs.com/starstarstar/p/9163396.html
Copyright © 2020-2023  润新知