Maison >interface Web >js tutoriel >Simuler le tri en javascript

Simuler le tri en javascript

怪我咯
怪我咯original
2017-03-30 09:52:071097parcourir

1. Le principe du tri des données dans la méthode javascriptsort

sort() Les éléments du tableau sont triés sur place et ce tableau est renvoyé. le tri peut ne pas être stable. La valeur par défaut est de trier selon le point de code Unicode de la chaîne

syntaxe : arr.sort([compareFunction])

paramètre compareFunction

facultatif. Utilisé pour spécifier une fonction disposée dans un certain ordre. En cas d'omission, les éléments sont triés en fonction des positions Unicode des caractères dans la chaîne convertie.

Si compareFunction(a, b) est inférieur à 0, alors a sera disposé avant b ;

Si compareFunction(a, b) est égal à 0, les positions relatives de a et b restent inchangés. Remarque : Le standard ECMAScript ne garantit pas ce comportement, et tous les navigateurs ne s'y conformeront pas

Si compareFunction(a, b) est supérieur à 0, b sera trié avant a.

//将数组中的元素按照从小大的顺序排列
 var arr=[11,55,22,45,16,87];

  arr.sort(function(a,b){
    return a-b;
  });
  console.log(arr);

2. Simuler le principe de tri des données au sein de javascript

sortSelf(arr,function(a,b){
    return a-b;
  });
  console.log(arr);

 function sortSelf(array,fn){
    for (var i = 0; i < array.length-1; i++) {
      var isSorted=true; //默认已经排好序
      for (var j = 0; j < array.length-1-i; j++) {
        //调用函数
        if(fn(array[j],array[j+1])>0){
          //交换两个变量
          var temp=array[j];
          array[j]=array[j+1];
          array[j+1]=temp;
          isSorted=false;
        }
      }
      if(isSorted){
        break;
      }
    }
  }



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