zoukankan      html  css  js  c++  java
  • js快速排序算法

        // 快速排序算法:关键在于定义基准元素,头尾元素与基准元素对比,定义头尾元素下标,头小右移,头大停止,尾大左移,尾小停止,头大尾小元素交换
        function partition(arr, startIndex, endIndex) {
            var pivot = arr[startIndex];
            var left = startIndex;
            var right = endIndex;
    
            while (left != right) {
                while (left < right && arr[right] > pivot) {
                    right--;
                }
    
                while (left < right && arr[left] <= pivot) {
                    left++;
                }
                if (left < right) {
                    var temp = arr[left];
                    arr[left] = arr[right];
                    arr[right] = temp;
                }
            }
    
            arr[startIndex] = arr[left];
            arr[left] = pivot;
            return left;
        }
    
        function quickSort(arr, startIndex, endIndex) {
            if (startIndex >= endIndex) {
                return;
            }
    
            var pivotIndex = partition(arr, startIndex, endIndex);
            quickSort(arr, startIndex, pivotIndex - 1);
            quickSort(arr, pivotIndex + 1, endIndex);
        }
    
        var Array = [4, 4, 6, 5, 3, 2, 8, 1];
        quickSort(Array, 0, Array.length - 1);
        console.log(Array.join(','));
    

      

  • 相关阅读:
    数据库30条规范
    数据库索引原理
    HashMap的实现原理
    Google 和 Baidu 常用的搜索技巧
    Arrays工具类十大常用方法
    fastjson将json格式null转化空串
    SolrCloud的介绍
    网页背景图片自适应浏览器大小
    addlinkedserver
    常用
  • 原文地址:https://www.cnblogs.com/peter-web/p/12550143.html
Copyright © 2011-2022 走看看