Imagine que você esteja em uma competição onde o desafio é realizar a ordenação de várias cartas de

baralho. Utilize os três métodos de ordenação: troca, seleção e por inserção e detalhe as etapas da ordenação realizadas em cada um destes métodos

1 Resposta

  • Sabrinabrandao

    Eu sempre acho um pouco estranho quando as pessoas falam que “os computadores são mais inteligentes que os humanos” — na verdade, nós que somos inteligentes o suficiente pra fazer máquinas que possam resolver problemas muito complexos. Na verdade, esse é o verdadeiro problema.

    Um computador é uma máquina capaz de realizar um zintilhão de operações matemáticas por segundo (sendo um zintilhão uma ordem de grandeza cada vez maior conforme os anos passam). Mas, pelo menos por enquanto, quem decide quais contas ele deve fazer, em qual momento deve fazer somos nós. Basicamente, isso é o que programadores fazem, isso é o que chamamos de algoritmo: uma sequência de passos que devem ser executados para fazer alguma coisa.

    Esse texto não é sobre algoritmos no geral. Na verdade, é sobre um problema bem simples (muito simples mesmo), que você consegue realizar de forma fácil — mas que, quando você para pra pensar, não é tão fácil fazer o computador fazê-lo.

    Basicamente, eu te dou um saco com 100 cartas numeradas. Eu preciso que você coloque-as em ordem crescente.

    Como você resolveria?

    A verdade é que nós temos muitas formas diferentes de fazer isso. Cada um tem a sua, inclusive. Você poderia fazer um monte com as cartas e começar a ir colocando na ordem dentro da sua mão ou ficar com todas elas já na mão e ficar trocando ali mesmo.

    Dependendo do número de cartas, você também faria de um jeito diferente. Se fossem 5 ao invés de 100, era só colocar elas em cima da mesa e ir pegando elas de volta na ordem. Tudo bem, você poderia fazer isso com 100 também, só demoraria um pouco mais.

    O problema é que um computador não pode ordenar uma série de números como você fez, cada hora de um jeito, até que tudo esteja pronto. Ele precisa de uma estratégia bem definida pra isso, que possa funcionar pra qualquer quantidade de números.

    E na falta de um jeito só… existem vários. Ordenar números é uma das tarefas mais básicas e mais importantes da computação (vários outros algoritmos só conseguem funcionar, ou executam de forma mais eficiente, se o conjunto de dados estiver previamente ordenado) e, há tempos, vários cientistas da área estão procurando diversas maneiras de fazê-lo.

    Simples (e lento): a ordenação por seleção

    Um dos algoritmos mais simples é conhecido como selection sort (ou “ordenação por seleção”) pois toda a ideia dele é focado em você procurar, um de cada vez, o menor dos elementos que você precisa ordenar. Vamos novamente para as nossas cartas para entender melhor como funciona.

    Imagine que você colocou todas as cartas em qualquer ordem em cima de uma mesa (bem grande, por sinal, pra caber 100 delas). O nosso algoritmo consiste em você, a cada vez que olhar para a sequência, sempre ter a menor carta possível na mão. Pegue a primeira carta e compare-a com todas as outras, sempre na sequência: mantenha a menor na sua mão e devolva a outra para o lugar que estava vazio.

    Explicação:

Clique aqui para adicionar a sua resposta.