Maison  >  Article  >  interface Web  >  Explication détaillée des compétences de l'algorithme de tri rapide Javascript_javascript

Explication détaillée des compétences de l'algorithme de tri rapide Javascript_javascript

WBOY
WBOYoriginal
2016-05-16 16:36:101581parcourir

L'idée du « tri rapide » est très simple. L'ensemble du processus de tri ne nécessite que trois étapes :

(1) Trouver un point de référence dans l'ensemble de données

(2) Créez deux tableaux pour stocker respectivement les tableaux gauche et droit

(3) Utilisez la récursivité pour la prochaine comparaison

Regardez une démo : http://jsdo.it/norahiko/oxIy/fullscreen (La page Web peut être lente à s'ouvrir, veuillez patienter)

<script type="text/javascript"> 

function quickSort(arr){
  if(arr.length<=1){
    return arr;//如果数组只有一个数,就直接返回;
  }

  var num = Math.floor(arr.length/2);//找到中间数的索引值,如果是浮点数,则向下取整
  var numValue = arr.splice(num,1);//找到中间数的值
  var left = [];
  var right = [];

  for(var i=0;i<arr.length;i++){
    if(arr[i]<numValue){
      left.push(arr[i]);//基准点的左边的数传到左边数组
    }
    else{
      right.push(arr[i]);//基准点的右边的数传到右边数组
    }
  }
 return quickSort(left).concat([numValue],quickSort(right));//递归不断重复比较
}
alert(quickSort([32,45,37,16,2,87]));//弹出“2,16,32,37,45,87”

</script>

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