Algoritma seleksi: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Ibrahimf (bicara | kontrib)
update
Ibrahimf (bicara | kontrib)
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 minimuminimum/maksimum linear==
 
==Linear minimum/maximum algorithms==
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: