Algoritma dan Struktur Data - pengurutan bubble
-
Upload
georgius-rinaldo -
Category
Engineering
-
view
54 -
download
0
Transcript of Algoritma dan Struktur Data - pengurutan bubble
Pengurutan Bubble
Algoritma danStruktur Data
Kuliahkita - Edwin Lunando
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.
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
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
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
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 */
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 } }}
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
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;}
Kompleksitas
Worst Case O(n²)
Best Case O(n)
Average Case O(n²)