1.Mudah
Berapa kompleksitas waktu untuk mencari nilai terbesar dalam array tidak terurut berisi n bilangan?
- AO(n log n)
- BO(n)
- CO(log n)
- DO(1)
2.Mudah
Algoritma pengurutan mana yang memilih pivot dan mempartisi array menjadi elemen yang lebih kecil dan lebih besar?
- AQuicksort
- BMerge sort
- CInsertion sort
- DBubble sort
3.Mudah
Apa arti f(n) = Θ(g(n))?
- Af tumbuh benar-benar lebih lambat daripada g
- Bf tumbuh benar-benar lebih cepat daripada g
- Cf selalu lebih kecil daripada g untuk setiap n, sehingga g membatasinya dari atas tetapi tidak pernah dari bawah
- Df tumbuh dengan laju yang sama dengan g, dibatasi di atas dan di bawah oleh kelipatan konstan g
4.Sedang
Mengapa dynamic programming tidak benar-benar mempercepat merge sort?
- AMerge sort tidak memiliki struktur rekursif
- BSubmasalahnya tidak tumpang tindih, sehingga tidak ada yang dapat dipakai ulang
- CMerge sort sudah O(n)
- DDynamic programming hanya bekerja pada masalah graf, bukan pada array
5.Sedang
Pernyataan mana tentang fungsi rekursif tanpa base case yang dapat dicapai yang benar?
- AFungsi itu terus memanggil dirinya sendiri sampai call stack meluap (overflow)
- BKompiler selalu mengubahnya menjadi loop yang berakhir dengan aman
- CFungsi itu berjalan dalam waktu O(1)
- DFungsi itu otomatis mengembalikan 0
6.Sedang
Apa yang dihitung algoritma Floyd–Warshall, dan seberapa cepat?
- ALintasan terpendek antara semua pasangan simpul dalam O(V³)
- BMinimum spanning tree dalam O(E log V)
- CUrutan topologis dalam O(V²)
- DLintasan terpendek dari satu simpul sumber ke semua simpul lain dalam O(V + E)
7.Sulit
Pernyataan mana tentang memilih elemen terkecil ke-k dari array tidak terurut yang benar?
- AQuickselect berjalan dalam O(n) yang diharapkan, dan median-of-medians menjamin O(n) pada kasus terburuk
- BSeleksi hanya mungkin dilakukan dalam O(n²)
- CQuickselect berjalan dalam O(log n) pada kasus terburuk, karena hanya berekursi ke satu sisi pivot
- DSeleksi selalu memerlukan Ω(n log n) karena memerlukan pengurutan
8.Sulit
Untuk menunjukkan bahwa masalah baru X adalah NP-hard, apa yang harus Anda lakukan?
- AMereduksi masalah NP-hard yang sudah dikenal ke X dalam waktu polinomial
- BMereduksi X ke masalah NP-hard yang sudah dikenal dalam waktu polinomial
- CMenunjukkan bahwa X tidak memiliki algoritma polinomial untuk input kecil
- DMenunjukkan bahwa X dapat diverifikasi dalam waktu polinomial
Kunci jawaban
- 1. B · O(n)
- 2. A · Quicksort
- 3. D · f tumbuh dengan laju yang sama dengan g, dibatasi di atas dan di bawah oleh kelipatan konstan g
- 4. B · Submasalahnya tidak tumpang tindih, sehingga tidak ada yang dapat dipakai ulang
- 5. A · Fungsi itu terus memanggil dirinya sendiri sampai call stack meluap (overflow)
- 6. A · Lintasan terpendek antara semua pasangan simpul dalam O(V³)
- 7. A · Quickselect berjalan dalam O(n) yang diharapkan, dan median-of-medians menjamin O(n) pada kasus terburuk
- 8. A · Mereduksi masalah NP-hard yang sudah dikenal ke X dalam waktu polinomial
Penyelesaian lengkap langkah demi langkah: latih topik ini di examproblems.com.