JavaScriptソート

2374 ワード

  • が出てきて、いつも返却しなければならないです.学校に行く時、まじめに勉強しないで、今はたまにぼんやりしています.
  • もしあなたが私のこの文章を見つけることができるならば、あなたも愚かな中にあると説明します.ハハ、ゆっくりしてください.
  • arrを例にとる
    var arr = [98, 14, 32, 54, 26, 62, 41, 77, 83];
    
    一、sort()の方法
    配列内の要素だけを交換して、新しいメモリを開けません.
    arr.sort();
    //      (a - b    )
    arr.sort(function(a,b) { return b - a; })
    
    二、快速並べ替え
    中心思想は以下の通りである.1、集合の中から一つの要素を基準pivotとして選択する.2、巡回して、基準より小さい要素を基準の左に移動し、大きいものを右に移動します.3、再帰的に、サブセットが1つの要素位置だけになるまで、左右の2つのサブセットに対してこの方法を繰り返し実行する.
    function quickSort(arr) {
    
        if (arr.length <= 1) { return arr; }
    
        var pivotIndex = Math.floor(arr.length / 2);
        var pivot = arr.splice(pivotIndex, 1)[0];
    
        var left = [];
        var right = [];
    
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] <= pivot) {
                left.push(arr[i]);
            } else {
                right.push(arr[i]);
            }
        }
    
        return quickSort(left).concat([pivot], quickSort(right));
    }
    
    三、泡の並べ替え
    単純で粗暴で、遍歴の過程の中で、元素は交換します.
    function bubbleSort(arr) {
    
        if (arr.length <= 1) { return arr; }
    
        for (var i = 0; i < arr.length; i++) {
            for (var j = 0; j < arr.length - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    var temp = arr[j + 1];
                    arr[j + 1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
    
        return arr;
    }
    
    四、並べ替えを選択する
    泡に似ています.
    function selectionSort(arr) {
    
        if (arr.length <= 1) { return arr; }
    
        var minIndex;
    
        for (var i = 0; i < arr.length - 1; i++) {
            minIndex = i;
            for (var j = i + 1; j < arr.length; j++) {
                if (arr[j] < arr[minIndex]) {
                    minIndex = j;
                }
            }
            var temp = arr[i];
            arr[i] = arr[minIndex];
            arr[minIndex] = temp;
        }
    
        return arr;
    }
    
    五、並べ替えの挿入
    トランプをしたことがありますか?
    function insertionSort(arr) {
    
        if (arr.length <= 1) { return arr; }
    
        var preIndex, current;
    
        for (var i = 1; i < arr.length; i++) {
            preIndex = i - 1;
            current = arr[i];
            while(preIndex >= 0 && arr[preIndex] > current) {
                arr[preIndex + 1] = arr[preIndex];
                preIndex--;
            }
    
            arr[preIndex + 1] = current;
        }
    
        return arr;
    }
    
    まだ続きます.