整列(Sort)-1


ソートの選択


セレクトソート(Selection Sort)は、最上位を選択して先頭に送るソートアルゴリズムである.
  • 時間複雑度:O(N^2)
  • let selectionSort = (arr) => {
      let minIdx, temp;
      for (let i = 0; i < arr.length; i++) {
        minIdx = i;
        for (let j = i+1; j < arr.length; j++) {
          if (arr[minIdx] > arr[j]) {
            minIdx = j;
          }
        }
        // 최솟값이 변경되면 swap
        if (minIdx !== i) {
          temp = arr[minIdx];
          arr[minIdx] = arr[i];
          arr[i] = temp;
        }
      }
      return arr;
    }

    泡の位置合わせ


    ブールソート(Bubble Sort)は、小さな値を前に引くソートアルゴリズムです.
  • 時間複雑度:O(N^2)
  • let BubbleSort = function(arr) {
      let temp;
      for (let i = 0; i < arr.length; i++) {
        for (let j = 0; j < arr.length - i; j++) {
          if (arr[j+1] < arr[j]) {
            temp = arr[j];
            arr[j] = arr[j+1]
            arr[j+1] = temp;
          }
        }   
      }
      return arr;
    }

    整列挿入


    ソートの挿入は、各数値を適切な位置に挿入するソートアルゴリズムです.ソートが必要な場合にのみ挿入されるため、大まかなソートに限られる場合はどのソートアルゴリズムよりも速い.
  • 時間複雑度:O(N^2)
  • let insertionSort = (arr) => {
      let temp;
      for (let i = 0; i < arr.length; i++) {
        let j = i;
        while (arr[j] > arr[j+1]) {
          temp = arr[j];
          arr[j] = arr[j+1];
          arr[j+1] = temp;
          j--;
        }
      }
      return arr;
    }