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

Partage de plusieurs codes de tri courants en JS

零到壹度
零到壹度original
2018-03-20 11:27:081420parcourir

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

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

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

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