Algoritma seleksi: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
update |
kTidak ada ringkasan suntingan |
||
Baris 4:
Satu algoritma seleksi yang sederhana dan digunakan secara luas adalah memanfaatkan [[algoritma pengurutan]] pada list, kemudian mengekstrak elemen ke-''k''. Ini adalah contoh [[reduksi (kompleksitas)|reduksi]] satu permasalahan ke dalam permasalahan lain. Hal ini bermanfaat ketika kita ingin melakukan banyak seleksi terhadap sebuah list tunggal, dimana kasus ini membutuhkan hanya satu operasi pengurutan di awal yang membutuhkan waktu yang lama (''expensive''), yang diikuti oleh banyak operasi ekstraksi yang sebentar (''cheap''). Ketika kita hanya ingin melakukan satu seleksi, atau ketika kita ingin selalu mengubah list di antara tiap seleksi, metode ini dapat jadi lebih lama (''costly''), biasanya membutuhkan paling sedikit O(''n'' log ''n'') waktu, dimana ''n'' adalah panjang dari list.
==Algoritma
Kasus terburuk algoritma linear untuk menemukan minimum atau maksimum adalah sangat jelas; kita menyimpan dua peubah, satu mengacu ke indeks dari elemen minimum/maksimum yang didapatkan sementara, dan satu lagi menyimpan nilainya. Bersamaan dengan kita memindai list tersebut, kita perbarui kedua peubah tersebut jika kita menemukan sebuah elemen yang sesuai:
|