larsobral / mentoria

0 stars 0 forks source link

Estrutura de Dados e Notação de Big O #8

Open larsobral opened 1 year ago

larsobral commented 1 year ago

Estrutura de Dados:

As estruturas de dados são formas de distribuir e relacionar os dados disponíveis, de modo a tornar mais eficientes os algoritmos que manipulam esses dados.

15 Sorting Algorithms in 6 Minutes

Lista:

Uma lista é uma série de elementos ligados.

Pilhas(Stacks):

Uma pilha estabelece uma política de entrada e saída LIFO (last in, first out), o último elemento a entrar é o primeiro a sair.

Filas(Queues):

Uma fila (Queue) estabelece uma política de entrada e saída FIFO (first in, first out), ou seja, o primeiro elemento a entrar na lista é o primeiro a sair.

haverá situações em que você precisará mudar este comportamento e dar prioridade a um determinado elemento para que ele “fure a fila”. Para isso existe a fila de prioridades (Priority Queue).

Hash Map:

python

streetno = {"1": "Sachine Tendulkar",
            "2": "Dravid",
            "3": "Sehwag",
            "4": "Laxman",
            "5": "Kohli" }

Big O:

image

Bubble Sort:

se a posição atual for maior que a posição posterior, é realizada a troca dos valores nessa posição. Caso contrário, não é realizada a troca, apenas passa-se para o próximo par de comparações.

Selection Sort:

A cada iteração, procura em toda a parcela não ordenada do vetor pelo menor (ou maior) elemento e o coloca na posição correta. image image

Insertion Sort:

Itera-se crescentemente entre as posições. Para cada posição, pega seu elemento e regride-o no vetor até encaixá-lo na posição correta (quando encontrar o primeiro elemento menor que ele).

Tanto o Bubble quanto o Selection possuem complexidade O(n²) em todos os casos. O Insertion, por outro lado, roda em O(n) no melhor caso (como por exemplo, se o vetor já estiver em ordem crescente).

Referencia: