Novas tecnologias estão mudando constantemente e dominar algumas fundações é uma base sólida para aprender e atualizar constantemente as tecnologias no futuro. Não tenho nada a fazer recentemente. Para revisar a estrutura de dados que aprendi antes, implementei o algoritmo de classificação na estrutura de dados no JS e incorporou a demonstração no final deste artigo.
Classificação simples
Tipo de bolha
A classificação de bolhas é o algoritmo de classificação mais simples, com um quadrado da complexidade do tempo n, e o código é o seguinte:
função bubblesort (matriz) {for (var i = 0; i <array.length; i ++) {for (var j = array.length; j> 0; j--) {if (array [j] <array [j - 1]) {var temp = array [j - 1]; Array [J - 1] = Array [J]; matriz [j] = temp; }} /* Resultado da saída* /document.write ("Este é o + (i + 1) +" Segundo Loop ・, o resultado é: "); para (var k = 0; k <Array.length;Classificação de inserção direta
A classificação de inserção direta também é um algoritmo de classificação simples, e a complexidade do tempo também é quadrada por n, mas o desempenho é um pouco melhor que a classificação de bolhas. O código é o seguinte:
função insertSort (array) {var temp; for (var i = 1; i <array.length; i ++) {var temp = array [i]; for (var j = i; j> 0 && temp <array [j - 1]; j--) {array [j] = array [j - 1]; } Array [j] = temp /* resultado de saída* /document.write ("th? + i +" o resultado da ordem dos passes é: ") para (var n = 0; n <array.length; n ++) {document.write (array [n] +", ");Selecione classificar
A classificação de seleção também é um algoritmo de classificação simples, com uma complexidade de tempo de n quadrado, e o desempenho também é um pouco melhor do que a classificação de bolhas. O código é o seguinte:
função selectSort (Array) {var min, temp; ; for (var i = 0; i <array.length; i ++) {min = i; for (var j = i+1; j <array.length; j ++) {if (matriz [min]> array [j]) min = j; } if (min! = i) {temp = array [i]; Array [i] = Array [min]; matriz [min] = temp; } /* Resultado da saída* /document.write ("+ i+" O resultado da ordem dos passes é: ") para (var n = 0; n <array.length; n ++) {document.write (array [n]+", ");} document.write (" <r /> ") /* o resultado da saída e termina* /}}Classificação complexa
Corrente da colina
A classificação de colinas é uma atualização da classificação de inserção. Em 1959, Hill interrompeu a complexidade do tempo da N Square, alterando a comparação em pares em simples classificação para definir a comparação de saltos de lapidação. A classificação de Hill vai do melhor nLogn para o pior N Square, de acordo com a complexidade do tempo diferente dos tamanhos de etapas. O código é o seguinte:
função deve atender (array) {var increment = array.length; var i var temp; // armazenar var count = 0; do {increment = math.floor (incremento / 3) + 1; para (i = incremento; i <array.length; i ++) {if (matriz [i] <array [i - increment]) {temp = matriz [i]; for (var j = i - incremento; j> 0 && temp <array [j]; j - = incremento) {array [j + increment] = array [j]; } matriz [j + incremento] = temp; /* Resultado de saída*/ count ++; document.write ("<br />+ count+" O resultado da ordem dos passes é: ") para (var n = 0; n <array.length; n ++) {document.write (array [n]+", ");} /* o resultado da saída termina* /}} while (incremento> 1)}Classificação da pilha
A classificação de heap é uma atualização para selecionar a classificação. Ao construir continuamente uma pilha superior grande ou uma pequena pilha superior, selecionando o maior ou menor valor e colocando -o na extremidade frontal da fila para classificar. A complexidade do tempo da classificação de heap em qualquer caso é NLOGN, o código é o seguinte:
function heapsort (array) {var temp; var i; para (i = math.floor (Array.Length / 2); i> = 0; i--) {heapadjust (array, i, array.length-1); // Construir matriz de matriz em um grande heap superior} para (i = array.length-1; i> = 0; i-) {/*trocar o nó raiz out*/temp = matriz [i]; array [i] = array [0]; matriz [0] = temp; /*A matriz restante continua sendo incorporada em um grande heapjust (matriz, 0, i - 1); /* Resultado da saída*/document.Write ("<Br/>+ (Array.Length - i) .ToString ()+" O resultado da ordem dos passes é: ") para (var n = 0; n <array.lengn; A matriz // max é o subscrito final da função da matriz heapjust (matriz, start, max) {var temp, j; } if (temp> = matriz [j]) quebra;Mesclar classificar
A classificação de mesclagem é a única classificação estável em classificação complexa. Ele classifica dividindo e, em seguida, mescla a matriz a ser classificada. O quadrado da complexidade do tempo de classificação de mesclagem é n. O código é o seguinte:
// Matriz de origem de origem // Matriz de destino de destinação // s Iniciar o subscrito // T Target Subscript Função MSORT (Origem, Dest, S, T) {var M; // escolha o valor intermediário var dest2 = new Array (); if (s == t) {dest [s] = fonte [s]; } else {m = math.floor ((s + t) / 2); msort (fonte, dest2, m+1, t); Merge (dest2, dest, s, m, t); /* Resultado da saída*/document.write ("<br/>+++contagem+" O resultado da classificação de passes é: ") para (var n = 0; n <dest.length; n ++) {document.write (array [n]+"), ");}/* o resultado da saída*/} // fusing dois matrics de pequeno dia para a pequena e lampe de pequena matriz de pequeno e sinalizador de pequenas manchas; Segunda Array Subscrito // Função de Comprimento Total Merge (Fonte, Dest, S, M, N) {for (var J = M+1, K = S; J <= N && S <= M; K ++) {if (fonte [S] <fonte [J]) if (s <= m) {for (var l = 0; l <= m - s; l ++) {dest [k+l] = fonte [s+l];Classificação rápida
A classificação rápida é da espécie mais rápida, com uma complexidade do tempo do NLOGN, e o código é o seguinte:
var count = 0; função Quicksort (Array, Low, High) {var temp; if (baixo <alto) {var Keypoint = QuickSortHelp (matriz, baixo, alto); contagem ++; document.write("<br />Terminal? + count + "The result of the ordering of the ordering is?:") for (var l = 0; l < array.length; l++) { document.write(array[l] + ","); } quickSort(array, low, keypoint - 1); quickSort(array, keypoint + 1, high); } } function QuickSortHelp(array, Low, High) {While (Low) {While (Baixo Array [High];O resumo acima de vários métodos de classificação (implementação do JS) na estrutura de dados é todo o conteúdo que compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.