1. O documento discute métodos de busca e ordenação em estruturas de dados como vetores. 2. A busca linear examina cada item do vetor até encontrar o item desejado, enquanto a busca binária divide o espaço de busca pela metade a cada etapa. 3. Métodos de ordenação como bubble sort, insertion sort e selection sort são úteis para problemas menores, enquanto quicksort e mergesort são mais eficientes para grandes conjuntos de dados.
1. O documento discute métodos de busca e ordenação em estruturas de dados como vetores. 2. A busca linear examina cada item do vetor até encontrar o item desejado, enquanto a busca binária divide o espaço de busca pela metade a cada etapa. 3. Métodos de ordenação como bubble sort, insertion sort e selection sort são úteis para problemas menores, enquanto quicksort e mergesort são mais eficientes para grandes conjuntos de dados.
1. O documento discute métodos de busca e ordenação em estruturas de dados como vetores. 2. A busca linear examina cada item do vetor até encontrar o item desejado, enquanto a busca binária divide o espaço de busca pela metade a cada etapa. 3. Métodos de ordenação como bubble sort, insertion sort e selection sort são úteis para problemas menores, enquanto quicksort e mergesort são mais eficientes para grandes conjuntos de dados.
1. O documento discute métodos de busca e ordenação em estruturas de dados como vetores. 2. A busca linear examina cada item do vetor até encontrar o item desejado, enquanto a busca binária divide o espaço de busca pela metade a cada etapa. 3. Métodos de ordenação como bubble sort, insertion sort e selection sort são úteis para problemas menores, enquanto quicksort e mergesort são mais eficientes para grandes conjuntos de dados.
Baixe no formato PDF, TXT ou leia online no Scribd
Fazer download em pdf ou txt
Você está na página 1de 2
2.
Algoritmos de busca e ordenação;
A busca é o processo em que se determina se um elemento é membro ou não de um determinado espaço. Busca é um método bastante utilizado em programação, pois frequentemente necessitamos de informações que podem ser adquiridas através dela. Pode-se realizar busca em diversos lugares como: vetores, string, intervalos numéricos. A forma mais simples de se consultar um vetor em busca de um item particular é, a partir do seu início, ir examinando cada um de seus itens até que o item desejado seja encontrado ou então que seu final seja atingido. Esse é o método de busca linear. A vantagem da busca linear é que ela sempre funciona, independentemente de o vetor estar ou não ordenado. A desvantagem é que ela é geralmente muito lenta; pois, para encontrar um determinado item x, a busca linear precisa examinar todos os itens que precedem x no vetor. Se não sabemos nada a respeito da ordem em que os itens aparecem no vetor, o melhor que podemos fazer é uma busca linear. Entretanto, se os itens aparecem ordenados5, podemos usar um método de busca muito mais eficiente, a busca binaria. Esse método é semelhante àquele que usamos quando procuramos uma palavra num dicionário: primeiro abrimos o dicionário numa página aproximadamente no meio; se tivermos sorte de encontrar a palavra nessa página, ótimo; senão, verificamos se a palavra procurada ocorre antes ou depois da página em que abrimos e então continuamos, mais ou menos do mesmo jeito, procurando a palavra na primeira ou na segunda metade do dicionário. Como a cada comparação realizada o espaço de busca reduz-se aproximadamente à metade, esse método é denominado busca binária. A desvantagem é que precisa q o vetor esteja ordenado, embora mostre eficiência com vetores grandes. A ordenação consiste em dispor elementos em uma certa sequência, seguindo algum critério. Por exemplo, a ordenação lexicográfica (alfabética) para dados literais, ou crescente e decrescente para dados numéricos. A ordenação tem como objetivo facilitar as buscas e pesquisas de ocorrências de determinado elemento em um conjunto ordenado. Existe diferentes métodos de rodenação ou algoritmos de ordenaçãp, métodos simples para pequenos problemas, e são mais fáceis de entender, como: Bubble Sort, Insertion Sort, Selection Sort. BubbleSort:Talvez a estratégia mais simples para ordenar um vetor seja comparar pares de itens consecutivos e permutá-los, caso estejam fora de ordem. À medida em que o vetor vai sendo processado, cada número vai sendo deslocado para a direita, até que seja encontrado outro maior. Evidentemente, no final do processo, um valor máximo estará na última posição do vetor. Se considerarmos os números maiores como mais pesados e os menores como mais leves, veremos que, durante a ordenação por esse método, os números mais pesados "descem" rapidamente para o "fundo" do vetor, enquanto que os números mais leves "sobem" lentamente para a "superfície". É um método pouco eficiente, embora seja fácil de entender e implementar. Insertion Sort ou ordenação por inserção é o método que percorre um vetor de elementos da esquerda para a direita e à medida que avança vai ordenando os elementos à esquerda. O funcionamento do algoritmo é bem simples: consiste em cada passo a partir do segundo elemento selecionar o próximo item da sequência e colocá-lo no local apropriado de acordo com o critério de ordenação. A ordenação por seleção ou selection sort consiste em selecionar o menor item e colocar na primeira posição, selecionar o segundo menor item e colocar na segunda posição, segue estes passos até que reste um único elemento. Encontra o menor elemento e permuta com aquele que ocupa sua posição no vetor ordenado. Existem métodos mais eficientes, são mais complexos, e requer maior niumero de compartação. Projetados para trabalhar com grande quantidade de dados, como exemplos: quicksort, mergesort. O quicksort é um algoritmo de comparação que emprega a estratégia de “divisão e conquista”. A ideia básica é dividir o problema de ordenar um conjunto com n itens em dois problemas menores. Os problemas menores são ordenados independentemente e os resultados são combinados para produzir a solução final. algoritmo pode ser resumida na seguinte estratégia: divide sua lista de entrada em duas sub-listas a partir de um pivô, para em seguida realizar o mesmo procedimento nas duas listas menores até uma lista unitária. Funcionamento do algoritmo: Escolhe um elemento da lista chamado pivô. Em seguida, reorganiza a lista de forma que os elementos menores que o pivô fiquem de um lado, e os maiores fiquem de outro. Esta operação é chamada de “particionamento”. Depois, recursivamente ordena a sub-lista. Esse algoritmo divide o problema em pedaços menores, resolve cada pedaço e depois junta (merge) os resultados. O vetor será dividido em duas partes iguais, que serão cada uma divididas em duas partes, e assim até ficar um ou dois elementos cuja ordenação é trivial. Para juntar as partes ordenadas os dois elementos de cada parte são separados e o menor deles é selecionado e retirado de sua parte. Em seguida os menores entre os restantes são comparados e assim se prossegue até juntar as partes. Existem alguns outros métodos também eficientes para ordenação, como: shellsort, timsort, radixsort, etc.