Learn Sorting Algorithm
Entendendo Algoritmos de Ordenação
Algoritmos de ordenação funcionam como organizar uma bagunça - você pega uma lista desordenada (como anões de tamanhos diferentes) e os coloca na ordem correta (do menor para o maior ou vice-versa).
Imagine esta fila de anões:

Conceitos Fundamentais Antes de Começar
Antes de mergulharmos no algoritmo, vamos entender alguns conceitos básicos:
O que é um Algoritmo?
Um algoritmo é simplesmente uma lista de instruções passo a passo para resolver um problema. É como uma receita de bolo - você segue os passos na ordem certa para chegar ao resultado desejado.
O que é Iteração?
Iteração é quando repetimos um conjunto de passos várias vezes. É como quando você escova os dentes - faz o mesmo movimento várias vezes até limpar todos os dentes.
Em programação, quando dizemos:
"Iteração 1" = primeira vez que executamos os passos
"Iteração 2" = segunda vez que executamos os passos
E assim por diante...
O que é Comparação?
Comparar é verificar qual elemento é maior, menor ou igual ao outro. É como quando você compara a altura de duas pessoas para saber quem é mais alto.
O Básico do Algoritmo de Ordenação
Nosso algoritmo simples compara os elementos um a um, como quando você organiza suas roupas - pega cada peça e compara com as outras para ver qual é maior ou menor.
Como Funciona na Prática
Agora vamos ver como o algoritmo trabalha iteração por iteração (ou seja, repetição por repetição):
Primeira Iteração (1ª Repetição)
Comparo o primeiro anão (
Pergunta: O primeiro é menor que o segundo?
Resposta: Sim (verdadeiro) → Não preciso trocar nada!

Segunda Iteração (2ª Repetição)
Agora comparo
Pergunta: O primeiro é menor que o segundo?
Resposta: Não (falso) → Preciso trocar eles de lugar!

Terceira Iteração (3ª Repetição)
Comparo
Pergunta: O primeiro é menor que o segundo?
Resposta: Sim (verdadeiro) → Não preciso trocar nada!

Quarta Iteração (4ª Repetição)
Comparo
Pergunta: O primeiro é menor que o segundo?
Resposta: Não (falso) → Preciso trocar eles de lugar!

Quinta Iteração (5ª e Última Repetição)
Agora todos os elementos já estão na ordem correta!

O Que Todo Algoritmo de Ordenação Precisa
Resumindo, todo algoritmo de ordenação possui:
Entrada: A lista desordenada
Tipo de ordem: Crescente ou decrescente
Iterações: Quantidade de repetições do processo
Comparações: Critério para comparar os elementos
Saída: A lista organizada
Partindo para o Código
Agora vamos ver como transformar nossa lógica em código C++. Vou explicar cada parte:
Conceitos Básicos Antes do Código
O que é um Array?
Um array é como uma fileira de caixas numeradas onde guardamos valores. Cada caixa tem um número (índice) e pode guardar um valor.
O que é um Loop For?
Um loop for é uma forma de repetir uma ação várias vezes. É como dizer: "faça isso 10 vezes" ou "faça isso para cada elemento da lista".
O Código Completo Explicado
Pontos Importantes Para Entender:
1. Como Funciona o rand()
rand()
gera números aleatórios gigantesrand() % 100
limita os números entre 0 e 99 (mais fácil de trabalhar)
2. Por que Dois Loops For?
Loop externo (i): Escolhe cada elemento da lista, um por vez
Loop interno (j): Compara esse elemento com todos os outros que vêm depois
É como comparar cada anão com todos os outros anões
3. Como Funciona a Troca (Swap)?
Imagine que você tem duas cartas e quer trocar elas de lugar:
4. Mudando a Ordem
Para ordem DECRESCENTE (maior → menor): use
if (array[i] < array[j])
Para ordem CRESCENTE (menor → maior): use
if (array[i] > array[j])
Importante Saber
Este algoritmo se chama Selection Sort (Ordenação por Seleção). Ele não é o mais rápido para listas muito grandes, mas é perfeito para aprender porque:
✅ É fácil de entender
✅ Mostra claramente como funciona a ordenação
✅ Usa conceitos básicos que você vai usar sempre