1.Mudah
Berapa banyak memori tambahan yang dipakai merge sort standar berbasis array?
- AO(log n)
- BO(n)
- CO(n²)
- DO(1)
2.Mudah
Apa yang dimaksud dengan memoisasi?
- AMenyimpan hasil pemanggilan fungsi agar pemanggilan berulang dijawab dari memori
- BMengubah rekursi menjadi loop yang setara secara otomatis sehingga call stack tidak diperlukan
- CMembebaskan memori setelah fungsi selesai
- DMenulis komentar di samping setiap baris kode
3.Mudah
Bagaimana cara kerja selection sort?
- ABerulang kali menukar elemen bersebelahan yang urutannya salah
- BBerulang kali mencari minimum dari bagian yang belum terurut lalu menukarnya ke depan
- CMenyisipkan setiap elemen ke bagian terurut yang terus bertambah dengan menggeser
- DMembagi array menjadi dua bagian lalu menggabungkannya
4.Sedang
Mengapa dynamic programming tidak benar-benar mempercepat merge sort?
- ASubmasalahnya tidak tumpang tindih, sehingga tidak ada yang dapat dipakai ulang
- BMerge sort sudah O(n)
- CDynamic programming hanya bekerja pada masalah graf, bukan pada array
- DMerge sort tidak memiliki struktur rekursif
5.Sedang
Mengapa banyak rutin pengurutan pustaka beralih ke insertion sort untuk subarray yang sangat kecil?
- AAlgoritma rekursif tidak dapat menangani array di bawah 10 elemen
- BInsertion sort memakai memori lebih sedikit daripada algoritma pengurutan lain untuk input besar
- CInsertion sort adalah O(n log n) pada kasus terburuk
- DInsertion sort memiliki overhead kecil dan cepat pada input kecil atau hampir terurut
6.Sedang
Relasi rekurens T(n) = 2T(n/2) + O(n) memiliki solusi:
- AO(log n)
- BO(n²)
- CO(n log n)
- DO(n)
7.Sulit
Mengapa algoritma Dijkstra dapat memberikan hasil yang salah ketika sebagian bobot sisi negatif?
- AAlgoritma itu masuk ke loop tak hingga pada setiap sisi negatif
- BAlgoritma itu hanya bekerja pada graf tak berarah
- CBilangan negatif tidak dapat disimpan dalam priority queue
- DSimpul ditetapkan final saat diekstraksi, tetapi sisi negatif berikutnya masih dapat memberinya lintasan yang lebih pendek
8.Sulit
Berapa biaya amortisasi menaikkan (increment) penghitung biner, mengingat satu increment dapat membalik banyak bit?
- AO(n) per increment
- BO(log n) per increment
- CO(n log n) per increment
- DO(1) per increment
Kunci jawaban
- 1. B · O(n)
- 2. A · Menyimpan hasil pemanggilan fungsi agar pemanggilan berulang dijawab dari memori
- 3. B · Berulang kali mencari minimum dari bagian yang belum terurut lalu menukarnya ke depan
- 4. A · Submasalahnya tidak tumpang tindih, sehingga tidak ada yang dapat dipakai ulang
- 5. D · Insertion sort memiliki overhead kecil dan cepat pada input kecil atau hampir terurut
- 6. C · O(n log n)
- 7. D · Simpul ditetapkan final saat diekstraksi, tetapi sisi negatif berikutnya masih dapat memberinya lintasan yang lebih pendek
- 8. D · O(1) per increment
Penyelesaian lengkap langkah demi langkah: latih topik ini di examproblems.com.