• f(x,y)= xy
1 2+1 3
10 2 + 10 12
1 1 1
10 10 100
f(n)=2+7(jumlah perulangan)
• Pertanyaan berikutnya, tentunya adalah berapa
kali kita harus melakukan
perulangan? Berhentinya kondisi perulangan
ditentukan oleh dua hal, yaitu:
• Kondisi upper_bound < lower_bound, dan
• Pengujian apakah lst[i] == search, yang
diimplikasikan oleh perintah else.
• Perhatikan juga bagaimana baik
nilai upper_bound maupun lower_bound dipeng
aruhi secara langsung oleh i, sehingga dapat
dikatakan bahwa kunci dari berhentinya
perulangan ada pada i
• Melalui baris kode ini:
• i = (lower_bound + upper_bound) / 2
• Atau sederhananya
O(n): Kompleksitas Linear
n
n! 2
n2
n log n
n
log n
Kesimpulan
• Pengembangan algoritma idealnya diusahakan
mendapatkan kompleksitas O(1) atau O(logn). Tetapi
pada kenyataannya kita tidak akan selalu
mendapatkan kompleksitas terbaik dalam merancang
algoritma.
• Jika tidak dapat mencapai kompleksitas maksimal, hal
terbaik yang dapat kita lakukan ketika
mengembangkan solusi dari masalah adalah melihat
apakah masalah yang ada dapat diselesaikan dengan
algoritma yang ada terlebih dahulu, sebelum
mengembangkan algoritma baru.