Professional Documents
Culture Documents
Insertion Sort Vs Selection Sort
Insertion Sort Vs Selection Sort
sort
By Dzaky Zakiyal Fawwaz (5114100067)
for j = 2 to n
key = A [j]
i=j 1
while i > 0 and A[i] > key
A[i+1]=A[i]
i=i 1
A[i+1]=key
for(j=1;j<n;j++){
key=A[j];
i=j-1;
while((A[i]>key)&&(i>0)){
A[i+1]=A[i];
i=i-1;}
A[i+1]=key;}
Loop invariant
Initialization
Instruction
Cost
Times
for
for jj =
=2
2 to
to n
n
key = A [j]
key = A [j]
i=j 1
i=j
1i > 0 and
while
A[i]while
> keyi > 0 and
C1
C1
C2
C2
C3
C3
C4
N
N
N-1
N-1
N-1
N-1
C4
C5
A[i+1]=A[i]
i=i 1
i=i 1
C5
C6
C6
A[i+1]=key
A[i+1]=key
C7
C7
N-1
N-1
Best case
T(n) = c1n + c2 (n 1) + c3 (n 1) + c42 j n (1) + c5 2 j n
(1 1) + c6 2 j n (1 1) + c7 (n 1)
T(n) = c1n + c2 (n 1) + c3 (n 1) + c4(n 1) + c7 (n 1)
T(n) = (c1 + c2 + c3 + c4 + c7 ) n + (c2 + c3 + c4 + c7)
T(n) = an + b = O(n)
Worst case
T(n) = c1n + c2 (n 1) + c3 (n 1) + c42 j n [n(n +1)/2 + 1]
+ c5 2 j n [n(n 1)/2] + c6 2 j n [n(n 1)/2] + c7 (n 1)
T(n) = (c4/2 + c5/2 + c6/2) n2 + (c1 + c2 + c3 + c4/2 c5/2 c6/2
+ c7) n (c2 + c3 + c4 + c7)
T(n) = an2 + bn + c = O(n2)
Loop invariant
Initialization
Sebelum iterasi pertama dilakukan, nilai j = i + 1, imin berisi
indeks elemen terkecil dari larik A[i...i].
Maintenance
Sebelum iterasi ke- j sekian, imin berisi indeks elemen terkecil
dari array A[i...j-1]. Kemudian setelah dijalankan, jika A[j] <
A[imin] maka imin=j dan disimpan di indeks terkecil A[i...j].
Termination
Berakhir jika j bernilai indeks n
Instruction
Cost
Times
C1
C1
C2
C2
C3
N
N
N-1
N-1
for j=i+1 to n
C3
C5
C5
temp=A[i]
C6
N-1
temp=A[i]
A[i]=A[imin]
A[i]=A[imin]
A[imin]=temp
A[imin]=temp
C6
C7
C7
c8
c8
N-1
N-1
N-1
N-1
N-1