バニラJavaScriptを使用したヒープソートの実装
ヒープソートは、基本的に比較ベースのソートアルゴリズムです。これは、改善された選択ソートと考えることができます。そのアルゴリズムのように、入力をソートされた領域とソートされていない領域に分割し、ターゲット(最大または最小)要素を抽出してソートされた領域に移動することにより、ソートされていない領域をインタラクティブに縮小します。地域。
例
このためのコードは-
になりますconst constructHeap = (arr, ind) => { let left = 2 * ind + 1; let right = 2 * ind + 2; let max = ind; if (left < len && arr[left] > arr[max]) { max = left; } if (right < len && arr[right] > arr[max]) { max = right; } if (max != ind) { swap(arr, ind, max); constructHeap(arr, max); } } function swap(arr, index_A, index_B) { let temp = arr[index_A]; arr[index_A] = arr[index_B]; arr[index_B] = temp; } function heapSort(arr) { len = arr.length; for (let ind = Math.floor(len / 2); ind >= 0; ind −= 1) { constructHeap(arr, ind); } for (ind = arr.length − 1; ind > 0; ind−−) { swap(arr, 0, ind); len−−; constructHeap(arr, 0); } } const arr = [3, 0, 2, 5, −1, 4, 1]; heapSort(arr); console.log(arr); var len;
出力
そして、コンソールの出力は-
になります[ −1, 0, 1, 2, 3, 4, 5 ]
-
JavaScriptのインポートで「{}」を使用しますか?
以下は、javaScriptインポートで{}を使用するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>
-
JavaScriptでの線形検索の実装
以下は、JavaScriptで線形検索を実装するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>