/ / Merge sort: uma descrição do algoritmo e diferenças de outros tipos de ordenação de dados

Classificação de mesclagem: descrição do algoritmo e diferenças de outros tipos de ordenação de dados

Ao desenvolver vários programas, praticamenteos programadores sempre precisam recorrer ao uso de classificação para otimizar algoritmos de trabalho, melhorar o desempenho de uma operação de pesquisa, etc. Hoje, existem muitos métodos diferentes de organizar os elementos na ordem necessária: classificação por mesclagem, usando uma chave, etc. Classificação é um complexo de operações, cujo resultado leva à ordenação de objetos do mesmo tipo em ordem decrescente ou crescente - dependendo dos requisitos de uma tarefa específica.

Toda a variedade de algoritmos de classificação pode serdividido em duas categorias: ordenação de matrizes e ordenação de arquivos. O primeiro tipo de objeto pode ser localizado não apenas na RAM, mas também em algum meio, desde que o acesso a ele seja aberto diretamente. A segunda categoria de objetos deve estar em um meio tangível: disco ou fita magnética.

Diferença fundamental entre pedidos de itensmatriz e a localização na ordem declarada dos arquivos é que todos os membros da matriz estão disponíveis a qualquer momento ao acessá-los e, portanto, o processo de classificação começa imediatamente a partir do momento em que o procedimento é iniciado sem interrupções devido à indisponibilidade de um ou outro elemento. No entanto, ao solicitar arquivos em um determinado momento, o acesso só pode ser concedido a um conjunto limitado de membros.

Frequente o suficiente para organizar arquivosA classificação de mesclagem é aplicada, desenvolvida com base nos princípios fundamentais de organização de elementos em uma ordem específica. Em geral, o procedimento de classificação pode ser descrito como segue: um determinado segmento de dados é selecionado e usado como uma chave. Como exemplo, considere o exemplo de classificação de itens postais por um índice especificado. Como resultado, o algoritmo não realiza uma análise completa da informação, mas ao mesmo tempo classifica os elementos necessários com um alto grau de probabilidade.

A principal diferença entre arquivos sequenciais earquivos com a disponibilização de acesso direto é que eles podem ser localizados em mídias que são difíceis de organizar o acesso direto constante. Além disso, esses arquivos geralmente não usam um comprimento fixo para os registros armazenados. Devido a esses recursos, os arquivos sequenciais são usados ​​apenas em duas situações:

- se necessário, a utilização de um suporte de dados orientado para o acesso sequencial;

- quando for conveniente usar registros de comprimento variável.

A classificação de mesclagem é usada com bastante frequênciaem software moderno. Isso se deve à ampla distribuição de arquivos sequenciais. Por exemplo, quase todos os arquivos de texto são sequenciais. Apesar da conveniência de considerar um arquivo organizado sequencialmente como um array de dados, tal abordagem é impossível, uma vez que é impossível acessar todos os elementos do arquivo por hardware, fisicamente.

A classificação de mesclagem se tornou, de fato, a únicamaneira de classificar arquivos sequenciais. Embora existam outros métodos para organizar arquivos sequenciais hoje, esse método continua sendo um dos mais populares. A ordenação de mesclagem natural significa dividir um arquivo em duas partes, iguais em quantidade de informações. Além disso, a partir de cada arquivo, há uma leitura gradativa de cada elemento dos que estão disponíveis atualmente. Os elementos ordenados são organizados na ordem necessária no terceiro arquivo, que é dividido em dois de tamanho semelhante. É assim que a classificação por mesclagem é realizada. Pascal, C, Basic - a maioria das linguagens de programação conhecidas suporta a implementação deste tipo de ordenação de arquivo sequencial.