Jawaban output ada di gambar pembahasan (yang latar belakang warna (background) hitam).
Penjelasan:
Begini.
Ini yang buat soal ini cukup rumit sesuai di soal.
Sesuai nama program di soal algoritma pencarian interpolasi.
Algoritma pencarian interpolasi mencari nilai 28 (int key = 28) yang ada di array dari 2 5 9 sampai angka 31.
Aku emang bingung kenapa si pembuat soal buat soal kaya gini, tapi aku tau gimana algoritma bahasa C++ ini. Tapi yaudahlah ini emang pembuat soal yang buat soal ini.
Aku paham gimana maksud algortima yang dibuat sama pembuat soal ini.
1. Alur pertama
Pertama, dibuat dulu prosedur utamanya dengan int n =10 yang n ini buat si array 2 5 9 sampai 31 yang ( int data[n])
Pembuat soal ini mau cari nilai 28 dari array 2 5 9 sampai 31 (int key = 28) lalu dilanjutkan memanggil function "interoplationSearch" (baca lagi pengertian function dalam bahasa C++)
2. Alur kedua
Terus, dibuat int low high dan pos untuk program selanjutnya.
3. Alur ketiga
Program alur ketiga yang aku sebut ini dibuat statement while yang dimana statement ini akan seleksi:
Jawaban:
Jawaban output ada di gambar pembahasan (yang latar belakang warna (background) hitam).
Penjelasan:
Begini.
Ini yang buat soal ini cukup rumit sesuai di soal.
Sesuai nama program di soal algoritma pencarian interpolasi.
Algoritma pencarian interpolasi mencari nilai 28 (int key = 28) yang ada di array dari 2 5 9 sampai angka 31.
Aku emang bingung kenapa si pembuat soal buat soal kaya gini, tapi aku tau gimana algoritma bahasa C++ ini. Tapi yaudahlah ini emang pembuat soal yang buat soal ini.
Aku paham gimana maksud algortima yang dibuat sama pembuat soal ini.
1. Alur pertama
Pertama, dibuat dulu prosedur utamanya dengan int n =10 yang n ini buat si array 2 5 9 sampai 31 yang ( int data[n])
Pembuat soal ini mau cari nilai 28 dari array 2 5 9 sampai 31 (int key = 28) lalu dilanjutkan memanggil function "interoplationSearch" (baca lagi pengertian function dalam bahasa C++)
2. Alur kedua
Terus, dibuat int low high dan pos untuk program selanjutnya.
3. Alur ketiga
Program alur ketiga yang aku sebut ini dibuat statement while yang dimana statement ini akan seleksi:
key > data[low] && key <= data[high])
Jika ditranslate (diterjemahkan / jabarkan): 28 > 2 && 28 <= 31.
True dan True hasilnya true dan bisa dijalankan dengan rumus:
pos = 8,068
Karena tipe data pos itu integer jadinya ditaksirkan ke nilai ternedah
pos = 8
Dituliskanlah pos = 8
4. Alur keempat
Lalu masuk ke statement if yang seleksi:
key > data[pos]
28 > data[8] (tidak dieksekusi)
else if: key < data[pos]
28 < data[8] (tidak dieksekusi)
else:
low = pos = 8
Jadi nilai low diambil dari nilai pos yang rumit itu. Artinya low = 8
5. Alur kelima
Terus, diseleksi lagi di statement if:
key == data[low]
28 == data[8]
28 == 28
Lalu di print jadi:
28 ditemukan pada indeks ke- 8
Kesimpulannya nilai 28 yang ingin dicari di dalam array ketemu, yaitu berada di indeks ke-8 dari array int data[n].
Begitu.
Maaf terlambat jawab.
Aku harap kamu ngerti yang aku jelasin panjang gini.