0Pricing
Go Academy · Pelajaran

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 menaik
  • sort.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.Float64s untuk slice bertipe
  • sort.Slice dengan 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

  1. Mengurutkan Slice
  2. Urutan Pengurutan Kustom
  3. Mencari Data Terurut
  4. Pengurutan Stabil
← Kembali ke Go Academy