Pengertian Bubble Sort
Bubble
Sort adalah salah satu metode dalam pengurutan suatu data. Sebenarnya
bagi seorang programmer sudah tak asing lagi dengan yang namanya
pengurutan data. Banyak metode dalam pengurutan data tersebut, namun
yang akan kita bahas adalah Pengurutan data Bubble Sort.
Untuk algoritma Bubble
Sort hanya memindahkan data dari satu tempat ke tempat yang lain dengan
logika pertukaran tempat. Namun Bubble Sort hanya memindahkan data yang
ada disebelah nya mau kanan maupun kiri satu per satu sesuai urutan
data yang ditentukan.
Secara
sederhana, bisa didefenisikan algoritma Bubble Sort adalah pengurutan
dengan cara pertukaran data dengan data disebelahnya secara terus
menerus sampai dalam satu iterasi tertentu tidak ada lagi perubahan.
Sumber : http://dauren-seo.blogspot.com/2018/02/logika-bubble-sort-di-java-dan-contoh.html
1. CONTOH PROGRAM BUBBLE SORT PADA PEMPROGRAMAN JAVA
package belajaralgoritma;
public class BubbleSortAmir {
public static void cetak(int[] bebas) {
for(int banyak=0;banyak<bebas.length;banyak++) {
System.out.print(bebas[banyak]);
}
}
public static void main(String[] A) {
int[] data2 = new int[10];
int panjang=data2.length;
for(int i=0; i<panjang; i++){
int acak = (int)(Math.random()*panjang);
data2[i]=acak;
}
System.out.print("data : ");
cetak(data2);
long start=System.nanoTime();
for(int ulang=0;ulang<data2.length;ulang++) {
for(int index=1;index<data2.length-ulang;index++) {
if(data2[index-1]>data2[index]) {
int tampung = data2[index-1];
data2[index-1]=data2[index];
data2[index]=tampung;
}
}
}
long stop=System.nanoTime();
System.out.print("\ndata : ");
cetak(data2);
System.out.println("\nWaktu : "+(stop-start));
}
}
OUTPUT :
Menggunakan 1000 data acak dan waktu proses
Menggunakan 100 data acak dan waktu proses
Menggunakan 10 data acak dan waktu proses
2. CONTOH PROGRAM BUBBLE SORT MODIFIKASI PADA PEMPROGRAMAN JAVA
package belajaralgoritma;
public class BubbleSortModifikasiAmir {
public static void cetak(int[] bebas) {
for(int banyak=0;banyak<bebas.length;banyak++) {
System.out.print(bebas[banyak]);
}
}
public static void main(String[] A) {
int[] data2 = new int[10];
int panjang=data2.length;
for(int i=0; i<panjang; i++){
int acak = (int)(Math.random()*panjang);
data2[i]=acak;
}
// manual data
//int[] data2= {4,3,1,2,5}; //average case
//int[] data2= {5,4,3,2,1}; //worse case
//int[] data2= {1,2,3,4,5}; //best case
boolean cekLagi = true;
System.out.print("data acak : ");
cetak(data2);
//mulai bubble sort
long start=System.nanoTime();
for(int ulang=0;ulang<5&&cekLagi;ulang++) {
cekLagi = false;
for(int index=1;index<data2.length-ulang;index++) {
if(data2[index-1]>data2[index]) {
int tampung = data2[index-1];
data2[index-1]=data2[index];
data2[index]=tampung;
cekLagi = true;
}
}
}
long stop=System.nanoTime();
System.out.print("\ndata urut : ");
cetak(data2);
System.out.println("\nWaktu proses : "+(stop-start));
}
}
OUTPUT :
Menggunakan 1000 data acak dan proses
Menggunakan 100 data acak dan proses
Menggunakan 10 data acak dan proses






.
BalasHapus