Perhatikan potongan program berikut:
for i:=1 to n do
for j:= 1 to i do
//....
Jika n = 100, maka potongan program tersebut akan berjalan dalam waktu 1 detik. Berapakah lamanya program berjalan jika n=10000? (bulatkan ke bilangan bulat terdekat). Dengan catatan: kode program/ algoritma dalam loop dapat dieksekusi dengan waktu konstan.
Trust me, I'm Handsome :v
n = 100 dieksekusi 1 detik. n=10000? S100 = 50(101) = 5050 S10000 = 5000(1+10000) = 50005000 kali S10000/S100 = 9902 detik
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
Bener kok, 9902 detik.
Algoritma dalam loop waktunya konstan, anggep aja yang didalem itu mengeksekusi sesuatu (anggep aja manggil prosedur A yang kalo dieksekusi waktunya konstan (nggak berubah)) berarti :
for i := 1 to n do
for j := 1 to i do
A();
Kode diatas bakal manggil A() sebanyak 1 + 2 + 3 + ... + n kali -> kalo n = 100 makan waktu 1 detik (dikasih di soal) bisa dapet sekali panggil A() butuh waktu berapa kan?
Sekarang tinggal itung kalo N = 10000, A() bakal dipanggil berapa kali.
jadi ketika konsentrasi [OH]= 10^-3 maka pHnya adalah 3
![]()
Kompleksitas algoritma ini O(n2) untuk n=100 -- 1 detik, maka untuk n=10000 --- 2 detik.
Masuk untuk menulis jawaban
Itu otak komputer apa otak manusia -_-
Masa kaya gini aja komputer butuh hampir tiga jam.