Heim  >  Artikel  >  Web-Frontend  >  Beispiel für eine Js-Schnellsortiermethode

Beispiel für eine Js-Schnellsortiermethode

小云云
小云云Original
2018-02-26 13:55:092267Durchsuche


Die schnelle Sortierung gliedert sich hauptsächlich in drei Teile: 1. Wählen Sie einen Pivot (Pivot) aus. 2. Alle Elemente, die kleiner als der Pivot-Wert sind, werden vor dem Pivot platziert, alle Elemente größer als der Pivot-Wert, werden vor dem Pivot platziert (die gleiche Anzahl kann auf beide Seiten gehen). Nachdem diese Partition beendet wurde, befindet sich die Basis in der Mitte der Sequenz. Dies wird als Partitionsoperation bezeichnet. 3. Das Unterarray mit Elementen, die kleiner als der Basiswert sind, und das Unterarray mit Elementen, die größer als der Basiswert sind, werden rekursiv sortiert, wenn die Größe des Arrays Null oder Eins ist , Es ist nur so, dass es immer sortiert wurde. Obwohl er ständig rekursiv ist, wird dieser Algorithmus immer beendet, da er in jeder Iteration mindestens ein Element an seine endgültige Position verschiebt.

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))

Die zweite Methode:

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))

Verwandte Empfehlungen:

JavaScript zur Implementierung einer schnellen Sortieranalyse

Beispiel für die PHP-Implementierung eines Schnellsortieralgorithmus

Beispiel für die PHP-Implementierung eines Schnellsortieralgorithmus für zweidimensionale Arrays

Das obige ist der detaillierte Inhalt vonBeispiel für eine Js-Schnellsortiermethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn