Ordenação de slices
Use sort.Slice e auxiliares
Ordenação de slices é uma aula grátis de Go Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Go Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Go Academy inclui 4 aulas no total.
Por que a ordenação é importante
A ordenação coloca os elementos em uma ordem definida. O pacote sort da biblioteca padrão do Go faz isso com eficiência.
Você raramente precisa escrever o seu próprio algoritmo de ordenação em Go. Em vez disso, chame auxiliares que trabalham com fatias.
Importando sort
Para usar o pacote, importe-o com import "sort". Ele faz parte da biblioteca padrão, portanto não é necessário fazer nenhum download externo.
package main
import (
"fmt"
"sort"
)
func main() {
fmt.Println("sort imported")
_ = sort.IntsAreSorted([]int{1, 2, 3})
}Ordenando inteiros
sort.Ints ordena uma fatia de int em ordem crescente, no próprio local. A fatia original é modificada.
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{5, 2, 8, 1, 9}
sort.Ints(nums)
fmt.Println(nums)
}Ordenando cadeias de caracteres
sort.Strings ordena uma fatia de cadeias de caracteres em ordem lexicográfica, ou seja, alfabética e pela ordem dos bytes.
package main
import (
"fmt"
"sort"
)
func main() {
words := []string{"banana", "apple", "cherry"}
sort.Strings(words)
fmt.Println(words)
}Ordenando números de ponto flutuante
sort.Float64s ordena uma fatia de valores float64 em ordem crescente.
package main
import (
"fmt"
"sort"
)
func main() {
values := []float64{3.2, 1.5, 2.8}
sort.Float64s(values)
fmt.Println(values)
}sort.Slice
sort.Slice ordena qualquer fatia usando uma função de comparação fornecida por você. A função recebe dois índices, i e j, e retorna true se o elemento i deve vir antes do elemento j.
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{5, 2, 8, 1}
sort.Slice(nums, func(i, j int) bool {
return nums[i] < nums[j]
})
fmt.Println(nums)
}Ordem decrescente
Para ordenar em ordem decrescente, inverta a comparação na função de comparação: retorne nums[i] > nums[j].
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{5, 2, 8, 1}
sort.Slice(nums, func(i, j int) bool {
return nums[i] > nums[j]
})
fmt.Println(nums)
}Ordenando estruturas
sort.Slice é especialmente útil com estruturas. Você decide qual campo determina a ordem.
package main
import (
"fmt"
"sort"
)
type Person struct {
Name string
Age int
}
func main() {
people := []Person{{"Bob", 30}, {"Alice", 25}}
sort.Slice(people, func(i, j int) bool {
return people[i].Age < people[j].Age
})
fmt.Println(people)
}Verificando se está ordenado
Auxiliares como sort.IntsAreSorted e sort.SliceIsSorted retornam true se uma fatia já estiver ordenada, sem alterá-la.
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{1, 2, 3}
fmt.Println(sort.IntsAreSorted(nums))
}Modificação no próprio local
Todas essas funções ordenam no próprio local. Elas não retornam uma nova fatia. Depois de chamar sort.Ints(s), a própria variável s é reordenada.
package main
import (
"fmt"
"sort"
)
func main() {
s := []int{3, 1, 2}
sort.Ints(s)
fmt.Println("s is now:", s)
}Escolhendo o auxiliar certo
Use os auxiliares tipados (sort.Ints, sort.Strings, sort.Float64s) para fatias simples. Use sort.Slice quando precisar de uma regra personalizada ou quiser ordenar estruturas.
sort.Ints- inteiros em ordem crescentesort.Slice- qualquer tipo, com a sua regra
Verificação rápida
O que a função de comparação em sort.Slice retorna?
Recapitulação
Você aprendeu a ordenar com o pacote sort:
sort.Ints,sort.Strings,sort.Float64spara fatias tipadassort.Slicecom uma função de comparação para regras personalizadas e estruturas- Toda a ordenação acontece no próprio local
Perguntas Frequentes
A aula “Ordenação de slices” é grátis?
Sim — o texto completo de “Ordenação de slices” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Go Academy, atualize para CoddyKit PRO. O curso de Go Academy inclui 4 aulas no total.
O que vou aprender em “Ordenação de slices”?
Use sort.Slice e auxiliares Você pratica Go Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Go Academy?
Nenhuma experiência prévia é necessária. Go Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Ordenação de slices”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Go Academy?
Sim. Cada aula de Go Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Ordenação de slices
- Ordens de classificação personalizadas
- Pesquisa em dados ordenados
- Ordenação estável