Mengurutkan Slice
sort.Slice dan pembantu
Mengurutkan Slice adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.
Mengapa Pengurutan Penting
Pengurutan menempatkan elemen dalam urutan yang ditentukan. Paket sort dari pustaka standar Go menangani hal ini secara efisien.
Anda hampir tidak pernah perlu menulis algoritma pengurutan sendiri di Go. Sebagai gantinya, Anda memanggil pembantu yang bekerja pada slice.
Mengimpor sort
Untuk menggunakan paket tersebut, impor dengan import "sort". Paket ini berada di pustaka standar, jadi tidak diperlukan pengunduhan eksternal.
package main
import (
"fmt"
"sort"
)
func main() {
fmt.Println("sort imported")
_ = sort.IntsAreSorted([]int{1, 2, 3})
}Mengurutkan Bilangan Bulat
sort.Ints mengurutkan slice int dalam urutan menaik, langsung pada tempatnya. Slice asli diubah.
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{5, 2, 8, 1, 9}
sort.Ints(nums)
fmt.Println(nums)
}Mengurutkan String
sort.Strings mengurutkan slice string secara leksikografis, yaitu berdasarkan urutan alfabet dan byte.
package main
import (
"fmt"
"sort"
)
func main() {
words := []string{"banana", "apple", "cherry"}
sort.Strings(words)
fmt.Println(words)
}Mengurutkan Bilangan Pecahan
sort.Float64s mengurutkan slice nilai float64 dalam urutan menaik.
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 mengurutkan slice apa pun menggunakan fungsi pembanding yang Anda berikan. Fungsi tersebut menerima dua indeks, i dan j, lalu mengembalikan true jika elemen i harus berada sebelum 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)
}Urutan Menurun
Untuk mengurutkan dalam urutan menurun, balikkan perbandingan dalam fungsi pembanding: kembalikan 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)
}Mengurutkan Struktur
sort.Slice sangat berguna untuk struktur. Anda menentukan bidang yang menjadi dasar urutan.
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)
}Memeriksa Apakah Sudah Terurut
Pembantu seperti sort.IntsAreSorted dan sort.SliceIsSorted mengembalikan true jika slice sudah terurut, tanpa mengubahnya.
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{1, 2, 3}
fmt.Println(sort.IntsAreSorted(nums))
}Perubahan Langsung pada Tempatnya
Semua fungsi ini mengurutkan langsung pada tempatnya. Fungsi-fungsi tersebut tidak mengembalikan slice baru. Setelah memanggil sort.Ints(s), variabel s itu sendiri telah diurutkan ulang.
package main
import (
"fmt"
"sort"
)
func main() {
s := []int{3, 1, 2}
sort.Ints(s)
fmt.Println("s is now:", s)
}Memilih Pembantu yang Tepat
Gunakan pembantu bertipe (sort.Ints, sort.Strings, sort.Float64s) untuk slice sederhana. Gunakan sort.Slice ketika Anda memerlukan aturan khusus atau ingin mengurutkan struktur.
sort.Ints- bilangan bulat menaiksort.Slice- apa pun, dengan aturan Anda
Pemeriksaan Cepat
Apa yang dikembalikan fungsi pembanding dalam sort.Slice?
Ringkasan
Anda telah mempelajari cara mengurutkan dengan paket sort:
sort.Ints,sort.Strings,sort.Float64suntuk slice bertipesort.Slicedengan fungsi pembanding untuk aturan khusus dan struktur- Semua pengurutan berlangsung langsung pada tempatnya
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mengurutkan Slice” gratis?
Ya — teks lengkap “Mengurutkan Slice” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Mengurutkan Slice”?
sort.Slice dan pembantu Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Go Academy?
Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Mengurutkan Slice” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?
Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mengurutkan Slice
- Urutan Pengurutan Kustom
- Mencari Data Terurut
- Pengurutan Stabil