Teknik Pengurutan: Bubble, Insertion, Quick, Merge
Teknik Pengurutan: Bubble, Insertion, Quick, Merge
Urut Balon
Iisertoi Sort
Pilih Urut
Pengurutan Cepat
Pengurutan Gabung
Pengurutan Gelembung
2 7 5 48
8 34 51 6432 21
8 34 51 643221(dari slide sebelumnya)
Algoritme melihat 32 sebagai angka kecil lainnya dan memindahkannya
toits appropriate locatoi betweei8aid34.
8 32 34 51 6421
Algoritma melihat 21 sebagai angka kecil lainnya dan bergerak
iito betweei8aid32.
Angka yang diurutkan terakhir:
8 21 32 34 51 64
Iisertoi SortComplexity
Algoritma pengurutan ini sering digunakan ketika sangat kecil.
Kasus terburuk terjadi ketika array dalam urutan terbalik. Loop itu harus
gunakan perbandingan K - 1.
f(i) = 1 + 2 + 3 + ... + (i - 1)
= i(i - 1)/2
= O(i 2)
1 4 6 9 2 3 8 1 2 3 4 6 9 8
1 2 6 9 4 3 8 1 2 3 4 6 8 9
1 2 3 9 4 6 8 1 2 3 4 6 8 9
Selectoi SortComplexity
Jumlah f(i) dari perbandingan sort pemilihan
algoritme mengembalikan urutan asli elemen.
Ada i-1 perbandingan selama pass 1 untuk menemukan
elemen terkecil, i-2 perbandingan selama pass 2 untuk ditemukan
elemen terkecil kedua, dan jadi oi.
Sesuai dengan itu,
f (i) = (i-1)+(i-2)+-----+2+1
= i(i-1)/2
= O(i 2)
f(i) memegang nilai yang sama O(i) baik
2 untuk kasus terburuk
kasus rata-rata bantuan.
Algoritma quick sort
PARTISI(A, AWAL, AKHIR, LOKASI)
1.1- SetLEFT = BEG, RIGHT=END, LOC=BEG
2.2- [Scai dari kanan ke kiri]
(a) Ulangi sementara A[LOC] <= A[RIGHT] dan LOC != RIGHT
KANAN = KANAN-1
Eid Loop
(b) Jika LOC == RIGHT maka kembali
(c) Jika A[LOC] > A[RIGHT] maka
(i) Iiterchaige A[LOC] dan A[RIGHT]
(ii) SetLOC = RIGHT
Struktur ofif Eid
3.3- [Scai dari kiri ke kanan]
(a) Ulangi sementara A[LEFT] <= A[LOC] dan LEFT != LOC
KIRI = KIRI+1
Hari Raya Loop
(b) Jika LOC == KIRI maka kembalikan
(c) Jika A[LEFT] > A[LOC] maka
(i) Iiterchaige A[LEFT] dan A[LOC]
(ii) SetLOC = LEFT
(iii) Pergi ke langkah 2.
[Eid ofif structure]
Algoritma quick sort
QUICKSORT()
1.1- TOP = -1
2.2- Jika N >1 maka TOP = TOP + 1, LOWER[TOP] = 0, UPPER[TOP] = N-1
3.3- Ulangi langkah 4 hingga 7 selama TOP != -1
4.4- [Ambil sublist dari tumpukan]
SetBEG = LOWER[TOP] , END = UPPER[TOP]
TOP = TOP - 1
5- Panggil PARTISI (A, AWAL, AKHIR, LOC)
6- [Dorong sublist kiri ke dalam tumpukan saat memiliki 2 atau lebih elemen]
Jika BEG < LOC-1thei
a. TOP = TOP + 1
b. LOWER[TOP] = BEG
c. UPPER[TOP] = LOC-1
Struktur Eid ofif
7- [Dorong sublist kanan ke dua tumpukan ketika memiliki 2 atau lebih elemen]
Jika LOC+1 < ENDthei
a. TOP = TOP+1
b. LOWER[TOP] = LOC+1
c. UPPER[TOP] = END
[Struktur Eid ofif]
Hari Raya dari loop langkah 3
8- Keluar
Kompleksitas Quick Sort
Kasus terburuk
O(i 2)
Kasus rata-rata
O(i log i)
Pengurutan Gabungan
18 26 32 6 43 15 9 1 1 6 9 15 18 26 32 43
18 26 32 6 43 15 91 6 18 26 32 1 9 15
18 26 32 6 43 15 9 1 18 26 6 32 15 43 1 9
18 26 32 6 43 15 9 1 18 26 32 6 43 15 9 1
18 26 32 6 43 15 9 1
Gabung-Sort(A, p, r)
sebuah urutan darinnumbers stored in array A
sebuah urutan yang teratur darinomor
A … 1 6 8 9 26 32 42 43 …
L 6 8 26 32
R 1 9 42 43
saya
Analisis Merge Sort
Waktu T(n) dari Merge Sort:
Bagi: menghitung tengah mengambil (1)
Coiquer: solviig 2 sub-problemstakes2T(n/2)
Combiie: penggabungan (n)
Total:
T(n)= (1)ifn =1
T(n)=2T(n/2)+ (n)ifn >1
T(n) = 2T(n/2) + n
=2 ((n/2)log(n/2) + (n/2)) +n
= n(log(n/2)) + 2n
=nlogn–n+ 2n
=nlogn+n
=O(nlogn)
Membandingkan Algoritma
Best Average Worst
Kasus Kasus Kasus
Urut Gelembung O(n) O(n2) O(n2)
Penyisipan Urut O(n) O(n2) O(n2)
Penyortiran Seleksi O(n2) O(n2) O(n2)
Pengurutan Gabungan
O(n log n) O(n log n) O(n log n)
Pengurutan Cepat O(n log n) O(n log n) O(n2)
Heap Sort O(n log n) O(n log n) O(n log n)
Terima kasih