Algoritma sorting Untuk mengurutkan array Algoritma bubble sort
Algoritma sorting Untuk mengurutkan array
Algoritma bubble sort • Contoh: • int v[5] = { 9, 11, 3, 7, 8}; • Buatlah program untuk mengurutkan elemen array v dari yang terkecil sampai yang terbesar!
Ilustrasi proses bubble sort • data = 9 11 3 7 8 ada 5 data jadi index nya 0 s/d 4 • Algoritma buble sort dengan 5 data membutuhkan 4 langkah proses jika ada n data, berarti ada n-1 proses • Lakukan proses-proses berikut:
Proses-1 • data awal proses 1 : 9, 11, 3, 7, 8 • cari bilangan terkecil dari 5 data([0]s/d[4]), dan tempatkan di index 0 • caranya dengan membandingkan data yang bersebelahan misal [n] dan [n-1]. Jika [n]<[n-1], data [n] dan [n-1] ditukar.
Proses-1 • • Data awal : 9, 11, 3, 7, 8 Dari b=4 sampai b=1 kerjakan: – Untuk b=4: • data[4]<data[3]? 8 < 7? • tidak data[3] dan [4] tidak ditukar • data=9, 11, 3, 7, 8 – Untuk b=3: • data[3]<data[2]? 7 < 3? • Tidak data[2] dan [3] tidak ditukar • Data=9, 11, 3, 7, 8 – Untuk b=2: • • data[2]<data[1] 3 < 11? Ya data[1] dan [2] ditukar Proses menukar : temp = data[1]; data[1] = data[2] ; data[2] = temp; Data=9, 3, 11, 7, 8 – Untuk b=1: • • • data[1]<data[0] 3 < 9? Ya data[0] dan [1] ditukar Proses menukar : temp = data[0]; data[0] = data[1] ; data[1] = temp; Data=3, 9, 11, 7, 8 Data akhir proses-1 : 3, 9, 11, 7, 8
Proses-2 • Data awal proses-2: 3, 9, 11, 7, 8 • cari bilangan terkecil dari 4 data([1]s/d[4]), dan tempatkan di index 1 • Dari b=4 sampai b=2 kerjakan: – Untuk b=4: • data[4]<data[3]? 8<7? • Tidak [3] dan [4] tidak ditukar • Data = 3, 9, 11, 7, 8 – Untuk b=3: • • data[3]<data[2]? 7<11? Ya [2] dan [3] ditukar Proses menukar : temp = data[2]; data[2] = data[3] ; data[3] = temp; Data = 3, 9, 7, 11, 8 – Untuk b=2: • • data[2]<data[1] 7<9? Ya [1] dan [2] ditukar Proses menukar : temp = data[1]; data[1] = data[2] ; data[2] = temp; Data = 3, 7, 9, 11, 8 • Data akhir proses-2 : 3, 7, 9, 11, 8
Proses-3 • Data awal proses-3: 3, 7, 9, 11, 8 • cari bilangan terkecil dari 3 data([2]s/d[4]), dan tempatkan di index 2 • Dari b=4 sampai b=3 kerjakan: – Untuk b=4: • • data[4]<data[3]? 8<11? ya [3] dan [4] ditukar Proses menukar : temp = data[3]; data[3] = data[4] ; data[4] = temp; Data = 3, 7, 9, 8, 11 – Untuk b=3: • • data[3]<data[2]? 8<9? Ya [2] dan [3] ditukar Proses menukar : temp = data[2]; data[2] = data[3] ; data[3] = temp; Data = 3, 7, 8, 9, 11 • Data akhir proses-3: 3, 7, 8, 9, 11
Proses-4 • Data awal proses-4 : 3, 7, 8, 9, 11 • cari bilangan terkecil dari 2 data([3] dan [4]), dan tempatkan di index 3 • Dari b=4 sampai b=4 kerjakan: – Untuk b=4: • data[4]<data[3] ? 11<9 ? • Tidak [3] dan [4] tidak ditukar • Data = 3, 7, 8, 9, 11 • Data akhir proses-4 : 3, 7, 8, 9, 11 • Data output algoritma buble sort : 3, 7, 8, 9, 11
Proses sorting algoritma bubble sort dalam notasi bahasa C • cuplikan program: …. for (a=1; a<size; a++) { // a adalah counter proses for(b=size-1; b>=a; b--) { // b adalah counter sub-proses dan index if( dat[b]<dat[b-1] ) { // jika data[b] < data [b-1], tukar data temp=dat[b-1]; dat[b-1]=dat[b]; dat[b]=temp; } } } ….
- Slides: 9