Estrutura de Dados
  • Programação e Estrutura de Dados
  • Estrutura de Dados
    • 1. Vetores e Matrizes
      • Vetores
      • Matrizes
      • Listas de Exercícios
    • 2. Listas Lineares
      • Lista Encadeada Simples
      • Lista Duplamente Encadeada
    • 3. Pilhas
      • Visão Geral
      • Operações
        • Criação de Pilhas
        • Inserção de elementos
        • Remoção de elementos
        • Impressão, topo e tamanho da pilha
      • Exemplo
    • 4. Filas
      • Visão Geral
      • Operações
        • Criação das Filas
        • Inserção de Elementos
        • Remoção de Elementos
        • Impressão, inicio e final da fila
      • Exemplo
    • 5. Recursividade
      • Visão geral
      • Exemplos
        • Execução do Algoritmo de Fibonacci Recursivo
    • 6. Algoritmos de Busca
      • Busca Sequencial
      • Busca Binária
      • Exemplos
    • 7. Algoritmos de Ordenação
      • Ordenação
      • Bubble Sort
      • Selection Sort
      • Insertion Sort
      • Merge Sort
      • Quicksort
    • 8. Árvores
      • Introdução
      • Árvores Binárias
      • Árvores Binárias de Busca
      • Árvores AVL
    • 9. Indexação e Hashing
    • 10. Grafos
  • Programação Orientada a Objetos
    • 1. Introdução a Orientação a Objetos
Powered by GitBook
On this page
  • Implementação de um vetor com números aleatórios
  • Algoritmos de Ordenação

Was this helpful?

  1. Estrutura de Dados
  2. 7. Algoritmos de Ordenação

Ordenação

A classificação (ordenação) é um dos processos mais utilizados na computação.

A classificação compreende um processo de rearranjar um conjunto de dados de acordo com certa relação de ordens dentre as quais podemos citar:

  • ordem alfabética;

  • ordem numérica; e

  • ordem cronológica.

Os tipos de ordenação acima podem ser dispostos de duas maneiras: ordem crescente, que rearranja os elementos do menor para o maior, e ordem decrescente, que rearranja os elementos do maior para o menor. Aqui, iremos considerar a ordem crescente para as implementações realizadas.

Classificar dados, isto é, colocar os dados em ordem crescente ou decrescente, é essencial para a eficiência de algumas aplicações. Todos os algoritmos aqui estudados terão o mesmo resultado final: o vetor de dados classificado. A escolha do algoritmo afetará, principalmente, o tempo de execução e o uso de memória do programa. Os algoritmos da bolha, da seleção e da inserção (direta e binária) são simples de programar, porém não são tão eficientes. O método de classificação quicksort é o mais eficiente, mas também, é mais complicado de se implementar.

Para suporte e posteriores testes da implementação dos algoritmos, vamos ver uma forma de criar um vetor com valores aleatórios:

Implementação de um vetor com números aleatórios

Para servir de base para os exemplos das próximas seções, vamos utilizar a seguinte função para gerar uma lista com números aleatórios:

import random
def lista_numeros_aleatorios():
    lista = random.sample(range(0,99), 10)
    return lista
    
print(lista_numeros_aleatorios()

A função sample do pacote random recebe como primeiro parâmetro o intervalo que os números serão gerados (nesse caso, de 0 a 99) e o segundo parâmetro recebe a quantidade de números que devem ser gerados.

Algoritmos de Ordenação

Previous7. Algoritmos de OrdenaçãoNextBubble Sort

Last updated 4 years ago

Was this helpful?

Bubble Sort
Selection Sort
Insertion Sort