Untuk pengajar: gratis untuk dicetak, disalin, dan dipakai di kelas. Setiap lembar kerja baru punya nilai baru dan kunci jawabannya sendiri. Tautan ke ExamProblems di halaman mata kuliah Anda sangat kami hargai.
Nama: ____________________ Tanggal: ____________
1.Mudah
Struktur manakah yang biasanya digunakan untuk mengimplementasikan priority queue?
AHeap
BStack
CSingly linked list tanpa urutan
DString
2.Mudah
Operasi manakah yang lambat pada array tetapi cepat di bagian head linked list?
AMengakses elemen ke-5
BMencari panjang array berukuran tetap
CMembaca elemen terakhir berdasarkan indeks
DMenyisipkan di awal
3.Mudah
Hash table menyimpan data dalam bentuk:
APohon dengan kunci terurut
BPasangan kunci–nilai yang dilokasikan dengan fungsi hash
CString dengan panjang tetap
DHanya daftar terurut
4.Sedang
Dalam binary heap yang disimpan dalam array mulai dari indeks 0, di mana induk dari node pada indeks i?
APada indeks 2i + 1
BPada indeks i − 1
CPada indeks ⌊i / 2⌋ + 1
DPada indeks ⌊(i − 1) / 2⌋
5.Sedang
Berapa biaya menyisipkan elemen di tengah array berisi n elemen?
AO(1), karena indeksnya diketahui
BO(n), karena elemen-elemen sesudahnya harus digeser
CO(log n), karena binary search
DO(n²), karena setiap elemen bergeser n kali
6.Sedang
Mengapa menelusuri array dalam praktik sering jauh lebih cepat daripada menelusuri linked list dengan panjang sama?
AArray memakai lebih sedikit instruksi untuk membandingkan nilai
BPenelusuran array berjalan dalam O(1) secara total, sedangkan penelusuran linked list O(n)
CElemen array berurutan di memori, sehingga memanfaatkan cache CPU dengan baik
DLinked list selalu menyimpan elemen di disk
7.Sulit
Bagaimana mendeteksi apakah singly linked list mengandung siklus dengan memori tambahan O(1)?
ASimpan setiap node yang dikunjungi dalam hash set
BUrutkan list dan cari duplikat
CHitung node sampai hitungannya melebihi field panjang list
DGerakkan satu pointer satu langkah dan pointer lain dua langkah, lalu periksa apakah keduanya bertemu
8.Sulit
Anda harus menyimpan k nilai terkecil dari aliran n bilangan dengan memori O(k). Pendekatan mana yang bekerja dalam waktu O(n log k)?
AArray terurut berisi semua n nilai
BQueue FIFO berisi k nilai terakhir
CMax-heap berukuran k, mengganti root-nya ketika datang nilai yang lebih kecil
DMin-heap yang menampung semua n nilai, lalu k nilai terkecil dikeluarkan di akhir
Kunci jawaban
1. A · Heap
2. D · Menyisipkan di awal
3. B · Pasangan kunci–nilai yang dilokasikan dengan fungsi hash
4. D · Pada indeks ⌊(i − 1) / 2⌋
5. B · O(n), karena elemen-elemen sesudahnya harus digeser
6. C · Elemen array berurutan di memori, sehingga memanfaatkan cache CPU dengan baik
7. D · Gerakkan satu pointer satu langkah dan pointer lain dua langkah, lalu periksa apakah keduanya bertemu
8. C · Max-heap berukuran k, mengganti root-nya ketika datang nilai yang lebih kecil
Penyelesaian lengkap langkah demi langkah: latih topik ini di examproblems.com.