0% menganggap dokumen ini bermanfaat (0 suara)
25 tayangan22 halaman

Teknik Pengurutan: Bubble, Insertion, Quick, Merge

Dokumen ini membahas beberapa teknik pengurutan umum, termasuk bubble sort, insertion sort, selection sort, quick sort, dan merge sort. Ini memberikan deskripsi tentang bagaimana masing-masing algoritma bekerja dan menganalisis kompleksitas waktu mereka, menemukan bahwa bubble sort, insertion sort, dan selection sort memiliki kompleksitas waktu terburuk O(n^2) sementara quick sort, merge sort, dan heap sort memiliki kompleksitas waktu terburuk yang lebih baik O(n log n).

Diterjemahkan oleh

ScribdTranslations
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
25 tayangan22 halaman

Teknik Pengurutan: Bubble, Insertion, Quick, Merge

Dokumen ini membahas beberapa teknik pengurutan umum, termasuk bubble sort, insertion sort, selection sort, quick sort, dan merge sort. Ini memberikan deskripsi tentang bagaimana masing-masing algoritma bekerja dan menganalisis kompleksitas waktu mereka, menemukan bahwa bubble sort, insertion sort, dan selection sort memiliki kompleksitas waktu terburuk O(n^2) sementara quick sort, merge sort, dan heap sort memiliki kompleksitas waktu terburuk yang lebih baik O(n log n).

Diterjemahkan oleh

ScribdTranslations
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Teknik Penyortiran

Urut Balon
Iisertoi Sort
Pilih Urut
Pengurutan Cepat
Pengurutan Gabung
Pengurutan Gelembung

Di sini DATA adalah array dengan N elemen. Algoritma ini


mengurutkan elemen DATA.
BUBBLE(DATA, N)
• Ulang langkah 2 dan 3 untuk K=1 hingga N-1.
• SetPTR:=1. [Inisialisasi penunjuk PTR.]
• Ulangi selama PTR ≤ N-K: Eksekusi Pass.
1. JIKA DATA[PTR] > DATA[PTR + 1], maka:
Iiterchaige DATA[PTR] dan DATA[PTR + 1].
[Eid of If structure]
• SetPTR:=PTR +1.
[Loop Eid ofiiier]
Eid dari langkah 1 loop luar.
[Link].
Contoh Bubble Sort
7 28 5 4 2 75 48 2 547 8 2 45 7 8

2 785 4 2 7548 2 547 8 2 4 5 7 8

2 7854 2 5748 2 45 7 8 (selesai)


2 7 584 2 5 47 8

2 7 5 48

Lulus 1 Lulus 2 Pass 3 Pass 4


Bubble SortComplexity
Analisis kompleksitas metode Pengurutan gelembung:
Secara tradisional, waktu untuk mengurutkan array diukur dalam
syarat jumlah perbandingan. Jumlah f(i) dari
perbandingan bubble sort dapat dihitung dengan mudah.
Secara khusus, ada i-1 perbandingan selama pengujian pertama,
i-2 perbandingan pass kedua dan jadi.
Jadi, f(i) = (i-1) + (i-2) +-------+2+1
= i(i-1)/2 = i / 22 – i/2
= O(i)2
Oleh karena itu, waktu yang diperlukan untuk mengurutkan array menggunakan bubble sort
metode proporsional di mana i2adalah jumlah dari
Masukkan item. Jadi kompleksitas bubble sort adalah
2 O(i)
Sort Iisertoi
PENYISIRAN_INSEERT (A, N)
[Link][0] = -∞.
[Link] Langkah 3 hingga 5 untuk K = 2, 3, …, N:
[Link] = A[K] bantuan PTR = K – 1.
[Link] selama TEMP < A[PTR]:
(a) SetA[PTR+1] = A[PTR]
(b) SetPTR = PTR - 1.
Hari Raya Loop.
[Link][PTR+1] = TEMP.
Hari Raya Loop 2.
[Link].
Contoh Penyisipan Sort
Sort: 34 8 64 51 32 21
34 864 51 32 21
Algoritma melihat bahwa 8 lebih kecil dari 34 sehingga ia bertukar.
8 3464 5132 21
51 lebih kecil dari 64, jadi mereka bertukar.

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)

Dalam kasus rata-rata, akan ada sekitar (K - 1)/2 perbandingan.


loop mereka.
f(i) = (1 + 2 + 3 + ….+ (i – 1))/2
= i(i - 1)/4
= O(i)2
Sortir Seleksi
Algoritma ini mengurutkan array A dengan N elemen.
SELEKSI(A, N)
[Link] langkah 2 dan 3 untuk k=1 hingga N-1:
[Link] MIN(A, K, N, LOC).
3.[Iiterchaige A[k] dan A[LOC]]
SetTemp: = A[k], A[k]: = A[LOC] dan A[LOC]: = Temp.
Eid langkah 1 Loop.
[Link].
MIN(A, K, N, LOC).
[Link] := A[K] bantu LOC:= K.
[Link] untuk j=k+1 hingga N:
Jika Mii>A[j], maka: Atur Mii:= A[j] dan LOC:=J.
[Struktur Eid ofif]
[Link].
Contoh Sortir Pilihan
8 4 6 9 2 3 1 1 2 3 4 9 6 8

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

• Bagikan bantuan Coiquer


• struktur rekursif
– Pecahkanmasalah sub-masalah yang serupa
ke ukuran yang lebih kecil dari yang asli
– Menaklukkanmasalah-masalah kecil dengan menyelesaikannya
secara rekursif. Jika mereka cukup kecil, selesaikan saja.
ii sebuah cara yang langsung.
– Gabungkansolutoisto untuk membuat solutoitothe
masalah asli
Contoh AI: Pengurutan Gabung

Masalah Pengurutan:Sorta sequeice ofnelemeitsiito


urutan menurun.

Bagi:Dividethen-elemeitsequeiceto harus diurutkan


dua subsekuens dari n/2 elemen masing-masing
Menaklukkan:Sordua subsekuensi berikutnya secara rekursif
gunakan penggabungan sortir.
Combine:Mergedua urutan subsekuens yang terurut
produksi jawaban yang terurut.
Penggabungan Sortir - Contoh
Urutan Asli Urutan yang Terurut

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

MergeSort(A,p,r) // urutkanA[p..r] dengan bagi dan takluk


1 jika p<r
2 kemudian q (p+r)/2
3 MergeSort(A,p,q)
4 MergeSort(A,q+1,r)
5 Gabungkan(A,p,q,r) //menggabungkan A[p..q] dengan A[q+1..r]

Panggilan Awal: MergeSort(A, 1,n)


Prosedur Gabungan
Gabungkan(A,p,q,r)
1n1 q–p+ 1
2n2 r–q Array yang berisi subarray yang terurut
3untuksaya 1 ton1 A[p..q] dan A[q+1..r].
4 lakukanL[i] A[p+i– 1]
5 untukj 1ton2
Subarray terurut yang digabungkan di A[p..r].
6 lakukanR[j] A[q+j]
7L[n1+1]
8R[n2+1]
9i 1
10j 1
11untukk pker
12 lakukan jikaL[i] R[j]
13 kemudianA[k] L[i]
14 saya i + 1
15 lainnyaA[k] R[j]
16 j j+ 1
Gabungkan - Contoh

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

Anda mungkin juga menyukai