Maison > interface Web > js tutoriel > Partage de plusieurs codes de tri courants en JS

Partage de plusieurs codes de tri courants en JS

零到壹度
Libérer: 2018-03-20 11:27:08
original
1510 Les gens l'ont consulté

Cet article présente principalement les étapes spécifiques et les compétences opérationnelles associées de plusieurs codes de tri JS courants. Les amis dans le besoin peuvent s'y référer. J'espère que cela pourra aider tout le monde.

4.2.1 Tri à bulles
Introduction à l'algorithme
Analyse :
Comparer deux éléments adjacents, si le précédent Si l'un est plus grand que le précédent, les positions sont inversées.
Le dernier élément doit être le plus grand du premier tour.
Comparez deux éléments adjacents selon l'étape 1. À ce stade, puisque le dernier élément est déjà le plus grand, il n'est pas nécessaire de comparer le dernier élément.

Implémentation du code js

function bubble_sort(arr){
  for(var i=0;i<arr.length-1;i++){
    for(var j=0;j<arr.length-i-1;j++){
      if(arr[j]>arr[j+1]){
        var swap=arr[j];
        arr[j]=arr[j+1];
        arr[j+1]=swap;
      }
    }
  }
}
var arr=[3,1,5,7,2,4,9,6,10,8];
bubble_sort(arr);
console.log(arr);
Copier après la connexion

4.2.2 Tri rapide
Implémentation du code js
Analyse : rapide Le tri est une amélioration par rapport au tri à bulles. Lors de la première passe de tri, les données sont divisées en deux parties, une partie étant plus petite que toutes les données de l'autre partie. Appelez-le ensuite de manière récursive, en effectuant un tri rapide des deux côtés.

function quick_sort(arr){
  if(arr.length<=1){
    return arr;
  }
  var pivotIndex=Math.floor(arr.length/2);
  var pivot=arr.splice(pivotIndex,1)[0];
  var left=[];
  var right=[];
  for(var i=0;i<arr.length;i++){
    if(arr[i]<pivot){
      left.push(arr[i]);
    }else{
      right.push(arr[i]);
    }
  }
  return quick_sort(left).concat([pivot],quick_sort(right));
}
var arr=[5,6,2,1,3,8,7,1,2,3,4,7];
console.log(quick_sort(arr));
Copier après la connexion

4.2.3 Tri par insertion
Introduction à l'algorithme
Analyse :
À partir du premier élément, le l'élément peut être considéré comme ayant été trié
Prendre l'élément suivant et scanner d'arrière en avant dans la séquence des éléments triés
Si l'élément (trié) est plus grand que le nouvel élément, déplacer l'élément à la position suivante
Répétez l'étape 3 jusqu'à ce que vous trouviez la position où l'élément trié est inférieur ou égal au nouvel élément
Insérez le nouvel élément dans la position suivante
Répétez l'étape 2

Implémentation du code js

function insert_sort(arr){
  var i=1,
  j,key,len=arr.length;
  for(;i<len;i++){
    var j=i;
    var key=arr[j];
    while(--j>-1){
      if(arr[j]>key){
        arr[j+1]=arr[j];
      }else{
        break;
      }
    }
    arr[j+1]=key;
  }
  return arr;
}
insert_sort([2,34,54,2,5,1,7]);
Copier après la connexion

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