Data nilai: 78, 90, 65, 88, 70
Cari nilai 88. Mana lebih cepat?
Proses mengatur sekumpulan data ke dalam urutan tertentu berdasarkan kriteria.
Data Awal:
Setelah Sorting (Ascending):
Urutkan angka berikut secara manual:
Pikirkan: Bagaimana langkah-langkah yang otak kalian lakukan?
Setiap satu iterasi loop luar selesai, satu elemen terbesar sudah pasti berada di posisi yang benar.
for(int i = 0; i < n-1; i++) {
for(int j = 0; j < n-i-1; j++) {
if(arr[j] > arr[j+1]) {
swap(arr[j], arr[j+1]);
}
}
}
for(int i = 0; i < n-1; i++) {
int min_idx = i;
for(int j = i+1; j < n; j++) {
if(arr[j] < arr[min_idx])
min_idx = j;
}
swap(arr[i], arr[min_idx]);
}
for(int i = 1; i < n; i++) {
int key = arr[i];
int j = i - 1;
while(j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
| Algoritma | Cara Utama | Karakteristik |
|---|---|---|
| Bubble | Tukar Tetangga | Paling Sederhana |
| Selection | Pilih Minimum | Swap Minimal |
| Insertion | Sisip & Geser | Adaptif (Cepat untuk data hampir urut) |
Menurut kalian:
Buka IDE kalian dan implementasikan:
Gunakan array dengan isi bebas untuk pengujian.
Coba algoritma kalian dengan kondisi:
[4, 1, 3, 2][1, 2, 3, 4][4, 3, 2, 1]Algoritma mana yang menurutmu paling "cerdas"? Kenapa?
Pertemuan 12: Sorting Lanjutan