zoukankan      html  css  js  c++  java
  • Javascript实现排序(5种)、二分查找、二叉树查找算法

    <script type="text/javascript">
            
    var a;
            a 
    = [66531154321];
            
    /*冒泡排序*/
            (
    function maopaopaixu() {
                
    for (var i = 0; i < a.length - 1; i++) {//比较的次数是length-1
                    for (var j = 0; j < a.length - 1 - i; j++) {
                        
    if (a[j] > a[j + 1]) {
                            [a[j],
    a[j + 1]] = [a[j + 1],a[j]];
                        }
                    }
                }
                console.log(a);
            })();

            a 
    = [66531154321];
            
    /*选择排序*/
            (
    function xuanzepaixu() {
                
    var min/*最小项的索引*/, tmp;
                
    for (var out = 0; out < a.length - 1; out++) {//比较的次数是length-1
                    min = out;
                    
    for (var inner = out + 1; inner < a.length; inner++) {//这里是a.length,不是a.lenght-1,因为后者会导致右数第2项没法参与排序。
                        if (a[inner] < a[min]) {
                            min 
    = inner;
                        }
                        
    //将最小的项移动到左侧
                        tmp = a[out];
                        a[out] 
    = a[min]
                        a[min] 
    = tmp;
                    }
                }
                console.log(a);
            })();

            a 
    = [66531154321];
            
    /*插入排序*/
            (
    function charupaixu() {
                
    for (var out = 1; out < a.length; out++) {
                    
    var tmp = a[out];
                    
    var inner = out;
                    
    while (a[inner - 1> tmp) {
                        a[inner] 
    = a[inner - 1];
                        
    --inner;
                    }
                    a[inner] 
    = tmp;
                }
                console.log(a);
            })();
        
    </script>

    二分查找

          function binarySearch(arr = [], tar, low = 0, high = arr.length - 1) {
            if (arr.indexOf(tar)==-1) return tar + " not in arr!";
            let mid = Math.floor((low + high) / 2);
            if (arr[mid] == tar) {
              return "got " + tar + " at index=" + mid + "!";
            } else if (tar > arr[mid]) {
              return binarySearch(arr, tar, mid + 1 < high ? mid + 1 : high, high);
            } else if (tar < arr[mid]) {
              return binarySearch(arr, tar, low, mid - 1);
            }
            return tar + " not in arr!";
          }
          console.log(binarySearch([1, 2, 3, 4, 5], 4));
  • 相关阅读:
    [SSRS] Use Enum values in filter expressions Dynamics 365 Finance and Operation
    Power shell deploy all SSRS report d365 FO
    display method in Dynamics 365 FO
    How To Debug Dynamics 365 Finance and Operation
    Computed columns and virtual fields in data entities Dynamics 365
    Azure DevOps for Power Platform Build Pipeline
    Create readonly entities that expose financial dimensions Dynamics 365
    Dataentity call stack dynamics 365
    Dynamics 365 FO extension
    Use singletenant servertoserver authentication PowerApps
  • 原文地址:https://www.cnblogs.com/kaima/p/1558615.html
Copyright © 2011-2022 走看看