Pengantar Algoritma
Pengantar Algoritma
Pengantar Algoritma
Di tulis oleh :
Selasa, 02/09/2014
Pengantar algoritma
Algoritma adalah prosedur komputasional yang terdefinisi dengan baik yang
membutuhkan nilai sebagai input dan menghasilkan nilai sebagai output.
Desain dan analisis algoritma
Pseudocode yaitu kode untuk memudahkan pemahaman algoritma yang dapat
ditransformasi kedalam berbagai bahasa pemrograman.
Contoh masalah komputasional
-
Pseudo-code Algoritma
Linear-Search (A,Key)
1. Indeks
1;
2. Ada
false;
If A[Indeks] = key
6.
7.
Indeks
indeks + 1;
8. If ada = false
9.
Then indeks
length [A] + 1;
Linear-Search 1 (A,Key)
1. Ada
false
2. for indeks
1 to length [A]
3. if A[indeks] = key
4.
5.
break;
6. if ada = false
7.
then A[Indeks]
key;
8. Return indeks
Linear-Search 2(A,Key)
1. for indeks
1 to length [A]
2. if A[Indeks] = key
3.
then break;
then A[indeks]
key;
6. return indeks
Loop Invariant and Correctness
Inisialisasi (initialization)
Pemeliharaan (maintenance)
Penghentian (termination)
Algoritma Insertion-Sort
Insertion-Sort (A)
2 to length [A]
key
A[j]
j1
A[i+1]
A[i+1]
A [i]
i1
key
Selasa, 09/09/2014
Pengantar Algoritma
Cost
Times
for j
2 to lenght (A)
C1
key
A[j]
C2
n-1
n-1
C4
n-1
j-1
C5
=2
A[i+1]
A[i]
C6
( 1)
=2
i-1
C7
( 1)
=2
A[i+1]
key
C8
n-1
Waktu komputasi tidak hanya tergantung pada jumlah data, tetapi juga tergantung pada
bagaimana barisan terurut.
Kasus terbaik
() = 1 + 2 + 3 = (1 + 2 ) + (3 1 )
=2
Kasus terburuk
() = 1 + 2 + 3 =
=2
1 2
1
+ ( 1 + 2 ) + (3 1 )
2
2
Ingat =2 =
(+1)
2
Cost
Times
1
ada
false
C1
for i
1 to [lenght [A]/2]
C2
3
4
n+1
C3
C4
=1
ada
true
C5
=1
6
7
C6
n-i+1
C7
=1
ada
true
C8
2
=1
If not(ada) then
10
posisi
11
A[posisi]
C9
length[A]+1
C10
data
C11
=1
=1
3
() = + 2 + 2 + (2 + 3)
2
Simulasi A= (26,28,28,23)
1. ada = F
2. for i = 1
2.1 if (A[1] = key) F
2.2 if (A[4] = key) F
3. for i = 2
3.1 if (A[2] = key) T
3.1.1 posisi = 2
3.1.2 ada = True
Selasa, 16/09/2014
Kompleksitas Algoritma
Kompleksitas Algoritma : Perubahan laju pertumbuhan input terhadap perubahan/
penambahan output. (Masalah pencarian : Laju pertumbuhan running time T(n) terhadap
penambahan jumlah data n).
Cg(n)
f(n)
f(n)=O(g(n))
Batas Bawah
f(n)
Cg(n)
f(n)=(g(n))
2n2+3n+1=2n2+O(n)