cs50-cc50-harvard

Voltar ao README

Voltar ao Índice da Semana 3

Laboratório 3 - Sort (Ordenar)

Analise três programas de classificação para determinar quais algoritmos eles usam.

Obs: Caso ocorra o erro: Permission denied

A solução é dar permissão para o usuário digitando:

chmod 700 sort(nr)

Começando

Abra o VS Code

1 - Entre no Terminal do VsCode: Ctrl+'

2 - Entrar nessa pasta: cd pset3
OBS: Caso a pasta possua espaço, por exemplo: Semana 3
Será necessário colocar aspas para entrar na pasta: cd 'Semana 3'

3 - No terminal digite o comando: wget https://cdn.cs50.net/2022/fall/labs/3/sort.zip
seguido de ENTER para baixar o arquivo zipado sort.zip que contem a pasta sort com seus arquivos.

4 - Execute o unzip: unzip sort.zip para extrair a pasta sort dentro da pasta pset3.

5 - Você não precisa mais do arquivo ZIP, então você pode executar o comando para excluir: rm sort.zip

6 - Agora entre na pasta: cd sort

7 - Se tudo foi bem sucedido, você deve executar o comando ls que listará os arquivos dentro dessa pasta, nesse caso deverá ter uma coleção de .txt arquivos ao lado de programas executáveis sort1, sort2 sort3.

Se você tiver algum problema, siga estas mesmas etapas novamente e veja se consegue determinar onde errou!

8 - Leia as instruções logo abaixo;

9 - Teste seu código: check50 cs50/labs/2023/x/sort;

10 - Envie seu código: submit50 cs50/labs/2023/x/sort depois digite: yes

 

Ver o progresso no Curso

 

Detalhes de Implementação

Lembre-se da aula em que vimos alguns algoritmos para classificar uma sequência de números. Eram eles: selection sort, bubble sort e merge sort.

A selection sort itera através das partes não classificadas de uma lista, selecionando o menor elemento a cada vez e movendo-o para seu local. correto.
Order of n² (Cenário de pior caso - matriz não classificada)
Omega n² (Cenário de Melhor Caso - Matriz Ordenada)
Theta n²

A bubble sort compara pares de valores adjacentes, um de cada vez, e os troca se estiverem na ordem incorreta. Isso continua até que a lista seja classificada.
Order of n² (Cenário de pior caso - matriz não classificada)
Omega n (Cenário de Melhor Caso - Matriz Ordenada)

A merge sort divide recursivamente a lista em duas repetidamente e, em seguida, mescla as listas menores de volta em uma maior na ordem correta. Order of (n log n) (Cenário de pior caso - matriz não classificada)
Omega (n log n) (Cenário de Melhor Caso - Matriz Ordenada)
Theta (n log n)

Instruções

São fornecidos a você três programas C já compilados, sort1, sort2 e sort3. Cada um desses programas implementa um algoritmo de classificação diferente:

selection sort (classificação por seleção),
bubble sort (classificação por bolha) ou
merge sort (classificação por mesclagem).

(embora não necessariamente nessa ordem!)

Sua tarefa é determinar qual algoritmo de classificação é usado por cada arquivo.

DICA

Os diferentes tipos de arquivos .txt podem ajudá-lo a determinar qual classificação é qual. Considere como cada algoritmo funciona com uma lista já classificada. Que tal uma lista invertida? Ou lista embaralhada? Pode ser útil trabalhar em uma lista menor de cada tipo e percorrer cada processo de classificação.

DICA - Passo a passo

Este vídeo irá te ajudar a entender o problema ;)
Atenção: para adicionar legendas ao vídeo clique no botão CC localizado no Player e selecione a opção “Português (Brasil)”.
Uma excelente aula para você!

Sort - Walkthrough - CS50 Labs 2020

CC50: Lab 3 - Sort (Fundação Estudar)

 

Não sabe como resolver?

Sort - Solution - CS50 Labs 2020

 

Voltar ao README

Voltar ao Índice da Semana 3