ホームページ  >  記事  >  ウェブフロントエンド  >  JSクイックソートメソッドの例

JSクイックソートメソッドの例

小云云
小云云オリジナル
2018-02-26 13:55:092262ブラウズ


クイックソートは主に 3 つの部分に分かれています: 1. ピボット (ピボット) を選択します。 2. ピボット値より小さいすべての要素はピボットの前に配置され、ピボット値より大きいすべての要素はピボットの後ろに配置されます。ピボット(同じ数字がどちらの側にも入ることができます)。このパーティションが終了すると、塩基はシーケンスの途中になります。これはパーティション操作と呼ばれます。 3. 基本値より小さい要素の部分配列と基本値より大きい要素の部分配列を再帰的に並べ替えるのは、配列のサイズが 0 または 1 の場合です。 , ただ、常に整理されているだけです。再帰を続けますが、各反復で少なくとも 1 つの要素が最終位置に移動するため、このアルゴリズムは常に終了します。

function quickSort(arr) {   
if (arr.length <= 1) { return arr } console.log("原数组是:" + arr)   
var pivotIndex = Math.floor(arr.length / 2)   
var pivot = arr.splice(pivotIndex, 1)[0]  
var left = []   
var right = []
 console.log("将中介提取出来后数组是:" + arr)   
for (var i = 0 ; i < arr.length ; i++){ 
console.log("此刻中介是:" + pivot + "当前元素是:" + arr[i])    
 if (arr[i] < pivot) {      
 left.push(arr[i]) console.log("移动" + arr[i] + "到左边")    
 } else {      
 right.push(arr[i]) console.log("移动" + arr[i] + "到右边")    
 }  
 }  
return quickSort(left).concat([pivot], quickSort(right)) } 
var nums = [2,3,4,3,1,5,7,122,341,-1] 
console.log(quickSort(nums))

2 番目のメソッド:

function quickSort(arr) {   
if (arr.length <= 1) { return arr } console.log("原数组是:" + arr)   
var pivotIndex = Math.floor(arr.length / 2)   
var pivot = arr.splice(pivotIndex, 1)[0]  
var left = []   
var right = []
 console.log("将中介提取出来后数组是:" + arr)   
for (var i = 0 ; i < arr.length ; i++){ 
console.log("此刻中介是:" + pivot + "当前元素是:" + arr[i])    
 if (arr[i] < pivot) {      
 left.push(arr[i]) console.log("移动" + arr[i] + "到左边")    
 } else {      
 right.push(arr[i]) console.log("移动" + arr[i] + "到右边")    
 }  
 }  
return quickSort(left).concat([pivot], quickSort(right)) } 
var nums = [2,3,4,3,1,5,7,122,341,-1] 
console.log(quickSort(nums))

関連推奨事項:

クイック ソート分析を実装する JavaScript

クイック ソートを実装する PHP メソッドの例

2 次元配列クイック ソート アルゴリズムを実装する PHP の例

以上がJSクイックソートメソッドの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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