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!