これらはデモンストレーションのみを目的としています。 JavaScript標準ライブラリには、パフォーマンスの理由ではるかに優れた種類の実装があります。
ThealGorithmsをありがとう:https://github.com/thealgorithms
Wikipediaから:Sinking Sortと呼ばれることもあるバブルソートは、リストを繰り返しステップインターステップする単純なソートアルゴリズムであり、隣接するアイテムの各ペアを比較して、間違った順序である場合はスワップします。リストのパスは、スワップが不要になるまで繰り返されます。これは、リストがソートされていることを示します。
プロパティ
ウィキペディアから:挿入ソートは、一度に最終的なソートアレイ(またはリスト)を構築する単純なソートアルゴリズムです。 QuickSort、Heapsort、またはマージソートなどの高度なアルゴリズムよりも、大きなリストでははるかに効率が低くなります。
プロパティ
ウィキペディアから:コンピューターサイエンスでは、マージソート(一般的に綴られたmergesort)は、効率的で汎用的な比較ベースのソートアルゴリズムです。ほとんどの実装は、安定した種類を生成します。つまり、実装により、ソートされた出力に等しい要素の入力順序が保持されます。 Mergesortは、1945年にJohn von Neumannによって発明された分割および征服アルゴリズムです。
プロパティ
Wikipediaから:QuickSort(Partition-Exchange Sortとも呼ばれることもあります)は、効率的なソートアルゴリズムであり、配列の要素を順番に配置するための体系的な方法として機能します。
プロパティ
ウィキペディアから:アルゴリズムは入力リストを2つの部分に分割します。リストの前面(左)に左から右に構築されているアイテムのサブリストと、残りのリストを占有するアイテムのサブリストです。当初、ソートされたサブリストは空で、整理されていないサブリストが入力リスト全体です。アルゴリズムは、整理されていないサブリストの最小(または並べ替え順序に応じて)要素を見つけることで進行し、それを左端の未解決の要素と交換(スワッピング)し(ソートされた順序に置く)、サブリストの境界を1つの要素を右に移動させます。
プロパティ
ウィキペディアから:Shellsortは、挿入品種の一般化であり、遠く離れたアイテムの交換を可能にします。アイデアは、すべてのnth要素がソートされたリストを提供することを考慮して、どこからでも始めるために要素のリストを配置することです。このようなリストはhソートされていると言われています。同等に、それぞれが個別にソートされたHインターリーブリストと考えることができます。
プロパティ
ソートアルゴリズムの複雑さの比較(バブルソート、挿入ソート、選択ソート)
複雑なグラフ
ウィキペディアから:リニア検索またはシーケンシャル検索は、リスト内でターゲット値を見つける方法です。一致が見つかるまで、またはすべての要素が検索されるまで、ターゲット値のリストの各要素を順次チェックします。線形検索は最悪の線形時間に実行され、せいぜいNの比較を行います。ここで、nはリストの長さです。
プロパティ
Wikipediaから:Half-interval検索または対数検索とも呼ばれるバイナリ検索は、ソートされた配列内のターゲット値の位置を見つける検索アルゴリズムです。ターゲット値を配列の中央要素と比較します。それらが不平等である場合、ターゲットが嘘をつくことができない半分が排除され、検索が成功するまで残りの半分で継続します。
プロパティ
ウィキペディアから:ジャンプ検索またはブロック検索とは、順序付けられたリストの検索アルゴリズムを指します。最初にすべてのアイテムをチェックすることで機能します。ここで、{ displaystyle k in mathbb {n}} k in mathbb {n} k はブロックサイズです。リスト内の検索キーの正確な位置を見つけるために、サブリストl [(k-1)m、km]で線形検索が実行されます。
プロパティ
暗号化では、シーザーの暗号としても知られるシーザー暗号、シフトシファー、シーザーのコード、またはシーザーシフトは、最も単純で最も広く知られている暗号化技術の1つです。
これは、プレーンテキスト内の各文字がアルファベットにあるいくつかの固定数の位置に置き換えられる代替暗号の一種です。たとえば、3の左シフトで、dはAに置き換えられ、eはBになります。
この方法は、彼の私的な通信でそれを使用したジュリアス・シーザーにちなんで名付けられました。
Caesar暗号によって実行される暗号化ステップは、VigenèreCipherなどのより複雑なスキームの一部として組み込まれていることが多く、ROT13システムに最新のアプリケーションがあります。すべての単一アルファベット置換暗号と同様に、シーザーの暗号は簡単に壊れており、現代の練習では基本的にコミュニケーションのセキュリティはありません。
Vigenère暗号は、キーワードの文字に基づいて、織り交ぜられたシーザー暗号を使用して、アルファベットテキストを暗号化する方法です。これは、多目的置換の一形態です。
VigenèreCipherは何度も再発明されました。この方法は、もともと1553年の本「La Cifra Del」でGiovan Battista Bellasoによって説明されました。 sig。ジョバン・バティスタ・ベラソ;しかし、このスキームは後に19世紀にBlaise deVigenèreに誤って請求され、現在では「Vigenèrecipher」として広く知られています。
暗号は理解して実装するのが簡単ですが、3世紀にわたってそれを破ろうとするすべての試みに抵抗しました。これにより、Le ChiffreIndéchiffrable (「the the fidhindipherable cipher」のフランス語)の説明が得られました。多くの人々は、本質的にVigenère暗号である暗号化スキームを実装しようとしました。 Friedrich Kasiskiは、1863年にVigenère暗号を解読する一般的な方法を最初に公開しました。
暗号化では、転置暗号は、平文単位(一般に文字または文字のグループ)が保持する位置が通常のシステムに従ってシフトされるため、暗号文がプレーンテキストの順列を構成する暗号化の方法です。つまり、ユニットの順序が変更されます(プレーンテキストが再注文されます)。
数学的には、キャラクターの位置には、暗号化された位置と逆関数が復号化されます。
Luhnアルゴリズムまたは「Modulus 10」または「Mod 10」アルゴリズムとも呼ばれるLuhn式は、クレジットカード番号、IMEI番号、米国、カナダの社会保険番号、イスラエルIDの社会保険番号などのさまざまな識別番号を検証するために使用される単純なチェックサム式です。 IBMの科学者Hans Peter Luhnによって作成され、1954年1月6日に提出され、1960年8月23日に付与された米国特許第2,950,048号で説明されました。