Maison > interface Web > js tutoriel > JavaScript implémente une analyse de tri rapide

JavaScript implémente une analyse de tri rapide

小云云
Libérer: 2018-01-11 09:06:27
original
1783 Les gens l'ont consulté

Cet article présente principalement la méthode d'implémentation du tri rapide en JavaScript. Il analyse le principe, la méthode d'implémentation et les précautions de fonctionnement associées sous forme d'exemples. J'espère que cela pourra aider tout le monde. .

Idéologie :

Utilisez l'idée de diviser pour régner et la méthode récursive pour décomposer les données en différentes sous-séquences contenant des éléments plus petits et des éléments plus grands. .

1. Sélectionnez un élément du tableau comme repère

2. Parcourez le tableau, les éléments plus petits que le repère sont déplacés vers la gauche du repère et les éléments plus grands que le repère. sont déplacés vers la droite du benchmark

3. Répétez les deux premières étapes pour les deux sous-ensembles à gauche et à droite du benchmark jusqu'à ce qu'il ne reste qu'un seul élément dans tous les sous-ensembles

Code d'implémentation :


function sqort(arr){
 if(arr.length===0){
 return [];
}
var left=[];
var right=[];
var pivot=arr[0];//(基准以首元素)
for(var i=1;i<arr.length;i++){
 if(arr[i]<pivot){
 left.push(arr[i]);
}else{
 right.push(arr[i]);
}
}
return sqort(left).concat(pivot,qsort(right));//递归
}
var a=[];
for (i=0;i<10;++i){
a[i]=Math.floor(Math.random()*100+1);
}
console.log(a);
console.log(sqort(a));
//(基准以中间元素的情况)
function sqort(arr){
 if(arr.length<=1){
 return arr;
}
var left=[];
var right=[];
var pivotIndex=Math.floor(arr.length/2);
var pivot=arr.splice(pivotIndex,1)[0];//(基准以中间元素)
for(var i=1;i<arr.length;i++){
 if(arr[i]<pivot){
 left.push(arr[i]);
}else{
 right.push(arr[i]);
}
}
return sqort(left).concat(pivot,sqort(right));//递归
}
var a=[12,34,23,78,34,26];
console.log(a);
console.log(sqort(a));
Copier après la connexion

Remarque : Appelez récursivement la fonction sqort() pour les tableaux plus petits et des tableaux plus grands respectivement, lorsque la récursion se termine. À ce moment-là, le plus petit tableau est concaténé avec la base et le plus grand tableau pour former le tableau ordonné final et renvoyé.

Recommandations associées :

Exemple d'implémentation PHP d'une méthode de tri rapide

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

Comment implémenter le tri rapide

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