Vídeo: Mineração de Dados e Algoritmos através de Exemplos 2024
Imagine tentar encontrar um item em uma lista sem ordená-lo primeiro. Toda pesquisa se torna uma busca seqüencial demorada. Mas, um caso pode ser feito para não classificar dados para algoritmos. Afinal, os dados ainda estão acessíveis, mesmo se você não classificá-lo - e a classificação leva tempo.
Claro, o problema com dados não triados é o mesmo problema que a gaveta de lixo em sua cozinha (ou onde quer que você tenha sua gaveta de lixo - supondo que você possa encontrá-la). Procurar qualquer coisa na gaveta de lixo é demorado, porque você nem consegue adivinhar onde encontrar alguma coisa. Ao invés de apenas entrar e pegar o que quiser, você deve tirar muitos outros itens que você não quer em um esforço para encontrar o único item que você precisa. Infelizmente, o item que você precisa pode não estar na gaveta de lixo em primeiro lugar - você pode ter jogado fora ou colocá-lo em uma gaveta diferente.
A gaveta de lixo em sua casa é como dados não triados em seu sistema. Quando os dados não são selecionados, você precisa pesquisar um item por vez, e nem sequer sabe se você encontrará o que precisa sem pesquisar cada item no conjunto de dados primeiro. É uma maneira frustrante de trabalhar com dados.
Claro, simplesmente classificar os dados não é suficiente. Se você tiver um banco de dados de funcionários classificado por sobrenome, ainda precisa procurar um funcionário por data de nascimento, a classificação não é útil. (Digamos que você deseja encontrar todos os funcionários que tenham um aniversário em um determinado dia.) Para encontrar a data de nascimento que você precisa, você ainda deve pesquisar todo o conjunto de dados um item por vez. Consequentemente, a classificação deve se concentrar em uma necessidade particular. Sim, você precisava do banco de dados do funcionário classificado por departamento em um ponto e pelo sobrenome em outro momento, mas agora você precisa dele ordenado por data de nascimento para usar o conjunto de dados efetivamente.
A necessidade de manter várias ordens ordenadas para os mesmos dados é a razão pela qual os desenvolvedores criaram índices. A classificação de um pequeno índice é mais rápida do que ordenar todo o conjunto de dados. O índice mantém uma ordem de dados específica e aponta para o conjunto de dados completo para que você possa encontrar o que você precisa extremamente rápido. Ao manter um índice para cada requisito de classificação, você pode efetivamente reduzir o tempo de acesso aos dados e permitir que várias pessoas acessem os dados ao mesmo tempo na ordem em que precisam acessá-lo.
Muitas maneiras estão disponíveis para categorizar algoritmos de classificação. Uma dessas maneiras é a velocidade do tipo. Ao considerar a eficácia de um algoritmo de classificação em particular na organização dos dados, os benchmarks de tempo normalmente analisam dois fatores:
- Comparações: Para mover dados de um local em um conjunto de dados para outro, você precisa saber onde movê-lo, o que significa comparar os dados de destino com outros dados no conjunto de dados.Ter menos comparações significa melhor desempenho.
- Trocas: Dependendo de como você escreve um algoritmo, os dados podem não chegar à sua localização final no conjunto de dados na primeira tentativa. Os dados podem realmente se mover várias vezes. O número de trocas afeta a velocidade consideravelmente porque agora você está realmente movendo dados de um local para outro na memória. Pequenas e pequenas trocas (como, quando usando índices), significam melhor desempenho.