0 penilaian0% menganggap dokumen ini bermanfaat (0 suara)
97 tayangan9 halaman
Algoritma bubble sort mengurutkan elemen array dengan membandingkan elemen yang bersebelahan dan menukar posisi elemennya jika urutannya salah. Proses ini diulang sebanyak n-1 kali dimana n adalah jumlah elemen array, dengan setiap iterasi mengurutkan satu elemen paling kecil ke posisi yang sesuai.
Algoritma bubble sort mengurutkan elemen array dengan membandingkan elemen yang bersebelahan dan menukar posisi elemennya jika urutannya salah. Proses ini diulang sebanyak n-1 kali dimana n adalah jumlah elemen array, dengan setiap iterasi mengurutkan satu elemen paling kecil ke posisi yang sesuai.
Algoritma bubble sort mengurutkan elemen array dengan membandingkan elemen yang bersebelahan dan menukar posisi elemennya jika urutannya salah. Proses ini diulang sebanyak n-1 kali dimana n adalah jumlah elemen array, dengan setiap iterasi mengurutkan satu elemen paling kecil ke posisi yang sesuai.
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- 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; } } } ….