A idéia de "classificação rápida" é muito simples, e todo o processo de classificação requer apenas três etapas:
(1) Encontre uma referência no conjunto de dados
(2) Crie duas matrizes, armazenando as matrizes esquerda e direita, respectivamente
(3) Use a recursão para fazer a próxima comparação
Veja uma demonstração: http://jsdo.it/norahiko/oxiy/fullscreen (a página da web pode demorar para abrir, espere devagar)
<script type = "text/javascript"> function QuickSort (arr) {if (arr.length <= 1) {return arr; // se houver apenas um número na matriz, ele será retornado diretamente; } var num = math.floor (arr.length/2); // findEx o valor do índice do número intermediário. Se for um número de ponto flutuante, redondo var numValue = arr.splice (num, 1); // encontre o valor do número intermediário var esquerdo = []; var à direita = []; para (var i = 0; i <arn.length; i ++) {if (arr [i] <numValue) {left.push (arr [i]); // o número à esquerda do ponto de referência é passado para a matriz esquerda} else {direito.push (arr [i]; Quicksort (esquerda) .CONCAT ([NumValue], Quicksort (direita)); // Repita recursivamente a comparação} alerta (Quicksort ([32,45,37,16,2,87])); // pop "2,16,32,37,45,87" </script>