ホームページ  >  記事  >  ウェブフロントエンド  >  JSソートアルゴリズムの概要

JSソートアルゴリズムの概要

php中世界最好的语言
php中世界最好的语言オリジナル
2018-04-20 09:23:311262ブラウズ

今回は、JS ソート アルゴリズムの概要について説明します。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;
};
3. 挿入ソート

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. クイックソート

function shellSort(arr) {
  if (arr.length < 2) {
    return arr;
  };
  var n = arr.length;
  for (gap = Math.floor(n / 2); gap > 0; gap = Math.floor(gap /= 2)) {
    for (i = gap; i < n; ++i) {
      for (j = i - gap; j >= 0 && arr[j + gap] < arr[j]; j -= gap) {
        temp = arr[j];
        arr[j] = arr[j + gap];
        arr[j + gap] = temp;
      }
    }
  }
  return arr;
};

アルゴリズム効率比較

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

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

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

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

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

| O(n²) O(n²) | | 不安定|

-------------------------------------------- ------ -----------
| 安定した O(n²) | ------ -------------------------------------------- ------
| 並べ替え | O(n^1.5) |
-------------- ----------------------------------------------------
| マージ ソート | O(nlogn) |
-------------- ------ ----------------------------
| O(nlogn) | (n²) | 不安定 |
------------------------------------------ ----- ---------------

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

推奨書籍:


jQueryのバージョンの選び方

jQueryの3種類の$()の詳しい解説


H5タイトル記述問題

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。