よく使用される JS ソート アルゴリズムを整理する

php中世界最好的语言
リリース: 2018-05-26 15:36:08
オリジナル
1140 人が閲覧しました

今回はよく使われるJSソートアルゴリズムをいくつか紹介します。JSソートアルゴリズムを使用する際の注意点は何ですか?実際の事例を見てみましょう。

1. バブルソート

var bubbleSort = function(arr) {

  for (var i = 0, len = arr.length; i < len - 1; i++) {
    for (var j = i + 1; j < len; j++) {
      if (arr[i] > arr[j]) {
        var temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
      }
    }
  }

  return arr;
};
ログイン後にコピー

2. 選択ソート

var selectSort = function(arr) {
  var min;
  for (var i = 0; i < arr.length - 1; i++) {
    min = i;
    for (var j = i + 1; j < arr.length; j++) {
      if (arr[min] > arr[j]) {
        min = j;
      }
    }
    if (i != min) {
      swap(arr, i, min);
    }
    console.log(i + 1, ": " + arr);
  }
  return arr;
};
function swap(arr, index1, index2) {
  var temp = arr[index1];
  arr[index1] = arr[index2];
  arr[index2] = temp;
};
ログイン後にコピー

4. ヒルソート

var insertSort = function(arr) {
  var len = arr.length,
    key;
  for (var i = 1; i < len; i++) {
    var j = i;
    key = arr[j];
    while (--j > -1) {
      if (arr[j] > key) {
        arr[j + 1] = arr[j];
      } else {
        break;
      }
    }
    arr[j + 1] = key;
  }
  return arr;
};
ログイン後にコピー

6. アルゴリズム効率比較

------------------------------------------------ -- -------------

| 平均的なケース | 最悪のケース |

------ ----------------------------------

| バブルソート | O(n²) | (n²) |

------------------------------------------ --------

| 選択ソート | O(n²) |

---------------------------------- ---------------- -------

| 安定した O(n²) | ----------------------------------- --------
| O( nlogn)~O(n²) | O(n^1.5) O(n²) |
---------- ------ --------------------------------- ---
| ソート O(nlogn) | | O(nlogn) |
---------------------------- --------------- ----------------------------
| クイックソート | O(nlogn) | 不安定
---------------------------------------- -------- -----------------

この記事の事例を読んだ後、あなたはその方法を習得したと思います。さらに興味深い情報については、php 中国語に関する他の関連記事に注目してください。 Webサイト !

推奨読書:


Vue で Sortable を使用する方法

js+css を使用して入力効果を実現する方法


以上がよく使用される JS ソート アルゴリズムを整理するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート