Algoritma seleksi: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
k Bot: penggantian teks otomatis (-algoritma, +algoritme) |
k Hysocc memindahkan halaman Algoritme seleksi ke Algoritma seleksi dengan menimpa pengalihan lama |
||
(4 revisi perantara oleh 3 pengguna tidak ditampilkan) | |||
Baris 2:
== Seleksi dengan algoritme pengurutan ==
Satu algoritme seleksi yang sederhana dan digunakan secara luas adalah memanfaatkan [[algoritme 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,
== Algoritme minimum/maksimum linear ==
Baris 8:
'''function''' minimum(a[1..n])
minIndex
minValue
'''for''' i '''from''' 2 '''to''' n
'''if''' a[i] < minValue
minIndex
minValue
'''return''' minValue
'''function''' maximum(a[1..n])
maxIndex
maxValue
'''for''' i '''from''' 2 '''to''' n
'''if''' a[i] > maxValue
maxIndex
maxValue
'''return''' maxValue
Baris 45:
Keuntungan lain dari metode ini adalah:
* Setelah mengetahui lokasi elemen terkecil ke-''j'', waktu yang dibutuhkan hanya O(''j'' + (''k''-''j'')<sup>2</sup>) untuk menemukan elemen terkecil ke-''k'', atau hanya O(''k'') untuk ''k'' ≤ ''j''.
* Metode ini dapat dilakukan dengan struktur data [[list berkait]],
{{algoritme-stub}}
|