Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptでクイックソートを実装する方法は?


クイックソート

クイックソートは、JavaScriptで最も重要なソート方法の1つです。配列からピボット値(ランダム値)を取得します。配列内の他のすべての要素は2つのカテゴリに分割されます。これらの要素は、ピボット値よりも小さく、ピボット値よりも大きい場合があります。

その後、各カテゴリ(ピボット未満およびピボットより大きい)は、ピボットが選択されるのと同じ手順に従い、各カテゴリはサブカテゴリ(ピボット未満およびピボットより大きい)に分割されます。 。

最終的に、サブカテゴリは、比較する要素がこれ以上ない場合に要素を含むか、要素を含まないように分割されます。残りの値は、以前のいくつかのポイントでピボットとして示され、この最も低いサブカテゴリにトリクルダウンしませんでした。

<html>
<body>
<script>
   function quickSort(originalArr) {
      if (originalArr.length <= 1) {
         return originalArr;
         } else {
               var leftArr = [];              
               var rightArr = [];
               var newArr = [];
               var pivot = originalArr.pop();      //  Take a pivot value
               var length = originalArr.length;
               for (var i = 0; i < length; i++) {
                  if (originalArr[i] <= pivot) {    // using pivot value start comparing
                     leftArr.push(originalArr[i]);      
               } else {
                       rightArr.push(originalArr[i]);
             }
           }
         return newArr.concat(quickSort(leftArr), pivot, quickSort(rightArr)); // array will be                                                                            //returned untill sorting occurs
      }
   }
   var myArray = [9, 0, 2, 7, -2, 6, 1 ];
   document.write("Original array: " + myArray);
   var sortedArray = quickSort(myArray);
   document.write("Sorted array: " + sortedArray);
</script>
</body>
</html>

出力

Original array: 9,0,2,7,-2,6,1
Sorted array: -2,0,1,2,6,7,9

  1. 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> &nbs

  2. 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&g