Bubble Sort
Bubble sort merupakan sebuah teknik pengurutan data dengan cara menukar dua data yang bersebelahan jika urutan dari data tersebut salah. Algorithma ini dapat mengurutkan data dari besar ke kecil (Ascending) dan kecil ke besar (Descending). Algoritma ini tidak cocok untuk set data dengan jumlah besar karena kompleksitas dari algorithma ini adalah Ο() di mana n adalah jumlah item.
Berikut gambaran dari implementasi Bubble Sort:
1st Cycle:
(70, 60, 30, 50, 40,20) -> (70, 60, 30, 50, 20,40)
(70, 60, 30, 50, 20, 40) -> (70, 60, 30, 20, 50, 40)
(70, 60, 30, 20,50, 40) -> (70, 60, 20, 30,50, 40)
(70, 60, 20,30,50, 40) -> (70, 20, 60,30,50, 40)
(70, 20,60,30,50, 40) -> (20, 70,60,30,50, 40)
(20,70,60,30,50, 40)
2nd Cycle:
(20,70,60,30,50, 40) ->(20,70,60,30,40,50)
(20,70,60,30,40,50) -> (20,70,60,30,40,50)
(20,70,60,30,40,50) -> (20,70,30, 60,40,50)
(20,70,30,60,40,50) -> (20,30,70, 60,40,50)
(20,30,70, 60,40,50)
3rd Cycle:
(20,30,70, 60,40,50) -> (20,30,70, 60,40,50)
(20,30,70, 60,40,50) ->(20,30,70,40,60,50)
(20,30,70,40,60,50) -> (20,30,40, 70,60,50)
(20,30,40,70,60,50)
4th Cycle:
(20,30,40,70,60,50) -> (20,30,40,70,50,60)
(20,30,40,70,50,60) -> (20,30,40,50, 70,60)
(20,30,40,50,70,60)
5th Cycle:
(20,30,40,50,70,60) -> (20,30,40,50,60, 70)
(20,30,40,50,60,70)
Berikut implementasi dari Bubble Sort menggunakan Bahasa C:
#include<stdio.h>
int main(){ int arr[]={70,60,30,50,40,20}; int n = sizeof(arr)/sizeof(int);
for(int i=1; i<n; i++){ for(int j=n-1; j>=i; j–){ if(arr[j-1] > arr[j]){ int temp = arr[j-1]; arr[j-1]=arr[j]; arr[j]=temp; } } }
for(int i=0;i<n;i++){ printf(“%d “,arr[i]); }
return 0; } |
Reference:
Paul Deitel & Harvey Deitel. (2016). C how to program : with an introduction to C++. 08. Pearson Education. Hoboken. ISBN: 9780133976892.