zoukankan      html  css  js  c++  java
  • 排序算法简记

    冒泡排序

    function bubbleSort(arr) {
        for(let i = 0; i < arr.length-1; i++) {
            for(let j = 0; j < arr.length-i-1; j++) {
                if(arr[j] > arr[j+1]) {
                    let temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
        return arr;
    }

    直接插入排序

    function insertSort(arr) {
        for(let i = 1; i < arr.length; i++) {
            for(let j = i ; j > -1; j--) {
                if(arr[j] < arr[j-1]) {
                    let temp = arr[j-1];
                    arr[j-1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        return arr;
    }

    折半插入排序

    快速排序

    function quickSort(arr) {
        if(arr.length < 2) {
            return arr;
        }
        else {
            let leftIndex = 0;
            let rightIndex = arr.length - 1;
            let index = {
                value: arr[0],
                pos: 0
            };
            while(leftIndex < rightIndex) {
                if(arr[leftIndex] > arr[rightIndex]) {
                    let temp = arr[leftIndex];
                    arr[leftIndex] = arr[rightIndex];
                    arr[rightIndex] = temp;
    
                    if(arr[leftIndex] === index.value) {
                        rightIndex--;
                        index.pos = leftIndex;
                    } else {
                        leftIndex++;
                        index.pos = rightIndex;
                    }
                } else {
                    if(arr[leftIndex] === index.value) {
                        rightIndex--;
                    } else {
                        leftIndex++;
                    }
                }
            }
            // console.log('dddd', arr ,' ',arr.slice(0, index.pos),' ',index.value,' ',arr.slice(index.pos + 1, arr.length))
            return quickSort(arr.slice(0, index.pos)).concat(index.value).concat(quickSort(arr.slice(index.pos + 1, arr.length)));
        }
    }

    简单选择排序

    希尔排序

    锦标赛排序

    堆排序

    https://segmentfault.com/a/1190000015487916?utm_source=tag-newest

    归并排序

    性能比较

  • 相关阅读:
    JS一些概念知识及参考链接
    CSS中浮动属性float及清除浮动
    前端一些概念知识及参考链接
    CSS中属性百分比的基准点
    CSS中的单位
    css居中问题
    Vue使用的扩展
    vue使用中的问题总结
    CSS中的position属性
    CSS中的flex布局
  • 原文地址:https://www.cnblogs.com/fogmisty/p/11881077.html
Copyright © 2011-2022 走看看