Maison > interface Web > js tutoriel > le corps du texte

Exemple de méthode de tri rapide Js

小云云
Libérer: 2018-02-26 13:55:09
original
2257 Les gens l'ont consulté


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))
Copier après la connexion
Copier après la connexion

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))
Copier après la connexion
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal