Maison  >  Article  >  interface Web  >  Exemple de méthode de tri rapide Js

Exemple de méthode de tri rapide Js

小云云
小云云original
2018-02-26 13:55:092240parcourir


Le tri rapide est principalement divisé en trois parties : 1. Sélectionnez un pivot (pivot) 2. Tous les éléments plus petits que la valeur du pivot sont placés devant le pivot, et tous les éléments plus grands que la valeur du pivot sont placés devant le pivot. Placer derrière la base (le même numéro peut aller de chaque côté). Une fois cette partition terminée, la base se trouve au milieu de la séquence. C'est ce qu'on appelle une opération de partition ; 3. Trier récursivement le sous-tableau d'éléments plus petit que la valeur de base et le sous-tableau d'éléments supérieur à la valeur de base, le cas le plus bas de récursion est lorsque la taille du tableau est zéro ou un, c'est-à-dire , C'est juste que ça a toujours été réglé. Bien qu'il continue de se répéter, cet algorithme se terminera toujours, car à chaque itération, il déplacera au moins un élément vers sa position finale.

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

La deuxième méthode :

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

Recommandations associées :

JavaScript pour implémenter une analyse de tri rapide

Exemple d'implémentation PHP d'un algorithme de tri rapide

Exemple d'implémentation PHP d'un algorithme de tri rapide pour les tableaux bidimensionnels

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn