A idéia de "classificação rápida" é muito simples, e todo o processo de classificação requer apenas três etapas:
(1) No conjunto de dados, selecione um elemento como a "base" (pivô).
(2) todos os elementos menores que a "referência" são movidos à esquerda da "referência"; Todos os elementos maiores que a "referência" são movidos à direita da "referência".
(3) Para os dois subconjuntos à esquerda e à direita da "linha de base", repita os primeiros e os segundos passos até que haja apenas um elemento restante em todos os subconjuntos.
Por exemplo, agora existe um conjunto de dados {85, 24, 63, 45, 17, 31, 96, 50}. Como classificá -lo?
Na primeira etapa, selecione o elemento intermediário 45 como a "base". (O valor de referência pode ser selecionado arbitrariamente, mas escolher o valor intermediário é mais fácil de entender.)
O segundo passo é comparar cada elemento com a "base" para formar dois subconjuntos, um é "menor que 45" e o outro é "maior ou igual a 45".
A terceira etapa é repetir a primeira e a segunda etapas para os dois subconjuntos até que haja apenas um elemento em todos os subconjuntos.
A seguir, é apresentada uma referência às informações on -line (aqui e aqui) para implementar o algoritmo acima no idioma JavaScript.
Primeiro, defina uma função do QuickSort cujos parâmetros são uma matriz.
var wicksort = function (arr) {};Em seguida, verifique o número de elementos na matriz e, se for menor ou igual a 1, será devolvido.
var wicksort = function (arr) {if (arr.length <= 1) {return arr; }};Em seguida, selecione "pivô" e separá -lo da matriz original e, em seguida, defina duas matrizes vazias para armazenar dois subconjuntos de um à esquerda e um à direita.
var wicksort = function (arr) {if (arr.length <= 1) {return arr; } var pivotIndex = math.floor (ar.Length / 2); var pivot = arr.splice (pivotIndex, 1) [0]; var esquerdo = []; var à direita = [];};Em seguida, comece a atravessar a matriz, coloque elementos menores que a "base" no subconjunto à esquerda e elementos maiores que a base no subconjunto à direita.
var wicksort = function (arr) {if (arr.length <= 1) {return arr; } var pivotIndex = math.floor (ar.Length / 2); var pivot = arr.splice (pivotIndex, 1) [0]; var esquerdo = []; var à direita = []; for (var i = 0; i <arr.length; i ++) {if (arr [i] <pivot) {left.push (arr [i]); } else {right.push (arr [i]); }}};Por fim, repita esse processo continuamente usando a recursão para obter a matriz classificada.
var wicksort = function (arr) {if (arr.length <= 1) {return arr; } var pivotIndex = math.floor (ar.Length / 2); var pivot = arr.splice (pivotIndex, 1) [0]; var esquerdo = []; var à direita = []; for (var i = 0; i <arr.length; i ++) {if (arr [i] <pivot) {left.push (arr [i]); } else {right.push (arr [i]); }} Retorne QuickSort (esquerda) .Concat ([Pivot], QuickSort (direita));};Ao usá -lo, basta ligar para o QuickSort ().
O acima exposto é uma explicação detalhada do exemplo do algoritmo do Quicksort da série JavaScript Algorithm introduzida pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!