Conteúdo principal
Computer science theory
Curso: Computer science theory > Unidade 1
Lição 4: Selection sortOrdenando
Classificar uma lista de itens em ordem crescente ou decrescente pode ajudar tanto um humano quanto um computador a encontrar itens da lista rapidamente, talvez usando um algoritmo como o da pesquisa binária. JavaScript tem um método de classificação nativo. Ele funciona em arrays de números ou até mesmo em arrays de strings:
var animals = ["gnu", "zebra", "antelope", "aardvark", "yak", "iguana"];
animals.sort();
println(animals);
Mesmo que o JavaScript tenha um método de classificação nativo, classificar é um ótimo exemplo de como pode haver muitas maneiras de pensar um mesmo problema, algumas talvez melhores que outras. Compreender a classificação é um tradicional primeiro passo para o domínio de algoritmos e da ciência da computação.
Você implementará um algoritmo particular de classificação em um momento. Mas, como aquecimento, aqui está um problema de classificação para praticar. Você pode trocar qualquer par de cartas ao clicar em uma carta e depois na outra. Troque as cartas até que elas estejam ordenadas com a menor carta à esquerda.
Que estratégia você usou para ordenar as cartas? Sua estratégia mudou durante a ordenação?
Este conteúdo é uma colaboração entre os professores de ciência da computação da Universidade de Dartmouth, Thomas Cormen e Devin Balkcom, juntamente com a equipe do currículo de computação da Khan Academy. O conteúdo é licenciado CC-BY-NC-SA.
Quer participar da conversa?
- Minha estratégia foi ir comparando os elementos com seus vizinho de uma forma sequêncial levando assim os maiores números para o fim e trazendo os menores para o inicio.
Ex:
Comparar posição 0 com a posição 1 - pos0 > pos1 se a posição 0 for maior que a posição 1 troco de posição e vou para próxima comparação pos1 > pos2 e assim até chegar na pos9 > pos10 finalizando 1 iteração.
Ao iniciar a nova iteração eu diminuo 1 do tamanho do meu vetor pois já sei que o ultimo elemento é o maior, nesse caso essa segunda iteração vai somente até pos8 > pos9 e assim indo diminuindo a cada iteração.
Essa foi a unica estratégia usada na ordenação e não sofreu nenhuma alteração durante o processo!(4 votos)- Usei uma estratégia diferente. Percorri o vetor até encontrar o 1º menor valor, logo em seguida fazia o swap para a posição inicial, logo em seguida procurei o 2º menor valor e coloquei na posição correta. Bem natural hehehe(6 votos)
- Minha estratégia foi jogar as cartar de maior número para o final, ordenando de trás para frente.(2 votos)
- Minha estratégia foi ir colocando as maiores no final(1 voto)
- comecei pelos estremos(1 voto)