Maksudnya adalah menghiraukan Cop di karenakan hampir setiap komputer memiliki waktu memproses operasi dasar berbeda.
Program CariMinimum
DEKLARASI
N:integer //banyak data masukan
x : integer //data yang dibaca
min: integer //data terkecil
i:integer //pencacah pengulangan
ALGORITMA
Read (N)
Read(x)
min <-- x
for i = 2 to N do
read(x)
if x < min then
min <-- x
endif
endfor
write(min)
C(n)
Paling dalam : <
WORST CASE Tmax(n) : N
BEST CASE Tmin(n) : 1
AVERAGE CASE Tavg(n) : 1+2+3+…+N/N = 1/2 N(N+1)/N
T(n)≈
N
==================================================
Function Palindrom
Deklarasi
i: integer //indeks pemindai dari kiri
j: integer //indeks pemindai dari kanan
pal :Boolean //true jika palindrom false jika tidak
algoritma
i <--1
j <-- n
pal ßtrue
while (i ≤ j) and (pal) do
if
Huruf[i] <> Huruf [j] then
pal <-- false
else
i <-- i + 1
j <-- j – 1
endif
endwhile
return pal
C(n)
Paling banyak : <--
WORST CASE Tmax(n) : 3 + n
BEST CASE Tmin(n) : 6
AVERAGE CASE Tavg(n) : 1+2+3+…+(3+n)/n
==================================================
Type
PData=^TData;
TData=record
info:integer;
next:PData;
procedure sisip_belakang(data:integer;var
awal,akhir:PData);
Deklarasi :
baru:PData;
Algoritma :
new(baru);
baru^.info <-- data;
baru^.next <-- nil;
if awal=nil then
awal <-- baru;
akhir <-- baru;
else
akhir^.next <-- baru;
akhir <-- baru;
endif
C(n)
Paling dalam : =
WORST CASE Tmax(n) : N
BEST CASE Tmin(n) : 1
AVERAGE CASE Tavg(n) : 1+2+3+…+N/N = 1/2 N(N+1)/N
T(n)≈
N
==================================================
Type
PData=^TData;
TData=record
info:integer;
next:PData;
procedure hapus_belakang(var
awal,akhir:PData);
Deklarasi :
bantu:PData;
Algoritma:
if awal=nil then
write ('Data kosong, penghapusan tidak
dilakukan')
else if awal=akhir then
dispose(awal);
awal <-- nil;
akhir <-- nil;
else
bantu <-- awal;
while(bantu^.next<>akhir) do
bantu <-- bantu^.next;
dispose(akhir);
akhir <-- bantu;
akhir^.next <-- nil;
endwhile;
endif;
C(n)
Paling dalam : =
WORST CASE Tmax(n) : N
BEST CASE Tmin(n) : 1
AVERAGE CASE Tavg(n) : 1+2+3+…+N/N = 1/2 N(N+1)/N
T(n)≈
N
==================================================
Type
PData=^TData;
TData=record
info:integer;
next:PData;
procedure tampil_Linked_List(awal:PData);
Deklarasi :
bantu:PData;
Algoritma :
if awal=nil then
write('Data Kosong')
else
bantu <-- awal;
while bantu<>nil do
output(bantu^.info);
bantu <-- bantu^.next;
endwhile;
endif;
C(n)
Paling dalam : =
WORST CASE Tmax(n) : 1
BEST CASE Tmin(n) :
1
AVERAGE CASE Tavg(n) : 1
Tidak ada komentar:
Posting Komentar