Algoritma dan Struktur Data - pengurutan bubble

10
Pengurutan Bubble Algoritma dan Struktur Data Kuliahkita - Edwin Lunando

Transcript of Algoritma dan Struktur Data - pengurutan bubble

Page 1: Algoritma dan Struktur Data - pengurutan bubble

Pengurutan Bubble

Algoritma danStruktur Data

Kuliahkita - Edwin Lunando

Page 2: Algoritma dan Struktur Data - pengurutan bubble

Pendahuluan

Sesuai dengan namanya, bubble sort membuat elemen yang dibandingkan berlaku seperti gelembung atau dinaikkan.

Metode sorting mengiterasi dan mebandingkan 2 elemen setiap iterasi dan mengubah posisi elemen yang dibandingkan dimana elemen yang lebih besar akan ditukar posisinya ke indeks yang lebih akhir.

Page 3: Algoritma dan Struktur Data - pengurutan bubble

Proses

→ awal→ bandingkan→ tukar, maju 1 elemen

→ sudah benar, lanjut→ bandingkan→ tukar, maju 1 elemen

5 2 7 1 6 8 4 3

5 2 7 1 6 8 4 3

2 5 7 1 6 8 4 3

2 5 7 1 6 8 4 3

2 5 7 1 6 8 4 3

2 5 1 7 6 8 4 3

Page 4: Algoritma dan Struktur Data - pengurutan bubble

Proses - 2

→ bandingkan→ tukar, maju 1 elemen

→ sudah benar, maju→ tukar

→ hasil iterasi pertama

2 5 1 7 6 8 4 3

2 5 1 6 7 8 4 3

2 5 1 6 7 8 4 3

2 5 1 6 7 8 4 3

2 5 1 6 7 4 8 3

2 5 1 6 7 4 3 8

Page 5: Algoritma dan Struktur Data - pengurutan bubble

Proses - 3

2 5 1 6 7 4 3 8 → Mulai lagi dari awal

→ Perhatikan bahwa kotak yang tebal sudah terurut→ lakukan sampai semua terurut

1 2 3 4 5 6 7 8

2 1 5 6 4 3 7 8

Page 6: Algoritma dan Struktur Data - pengurutan bubble

Pseudocodeprocedure bubbleSort( Input/Output A : list of sortable items )

n = length(A)

repeat

swapped = false

for (i = 0 to n-1) do /* elemen pertama memiliki indeks 0 */

begin

/* jika pasangan tidak sesuai */

if A[i-1] > A[i] then

begin

/* tukar posisinya dan nilai swap diingat menjadi true */

swap( A[i-1], A[i] )

swapped = true

end

end

until not swapped /* lakukan sampai tidak ada yang ingin ditukar */

Page 7: Algoritma dan Struktur Data - pengurutan bubble

Contoh Kode C++void bubbleSort(int arr[], int size) { bool not_sorted = true; int j=1,tmp; while (not_sorted) { not_sorted = false; j++; for (int i = 0; i < size - j; i++) { if (arr[i] > arr[i + 1]) { tmp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = tmp; not_sorted = true; } // selesai proses tukar print_array(arr,5); // cetak array } }}

Page 8: Algoritma dan Struktur Data - pengurutan bubble

Contoh Kode C++ - lanjut

#include <iostream>#include <array>using namespace std;

void print_array(int array[], int size) { cout << "langkah bubble sort: "; int j; for (j=0; j<size;j++) cout <<" "<< array[j]; cout << endl;} //end of print_array

Page 9: Algoritma dan Struktur Data - pengurutan bubble

Contoh Kode C++ - lanjut 2

int main() { int arrBil[5] = {3,5,2,1,4}; bubbleSort(arrBil, 5); // akan menanmpilkan hasil bubble sort // dengan print array tiap langkah return 0;}

Page 10: Algoritma dan Struktur Data - pengurutan bubble

Kompleksitas

Worst Case O(n²)

Best Case O(n)

Average Case O(n²)