Pengertian Selection Sort
Selection sort merupakan teknik sorting yang paling sederhana, hal pertama yang akan dilakukan algoritma selection sort adalah menemukan elemen terkecil dalam array kita dan menukarnya (swap) dengan elemen yang ada di posisi pertama, kemudian algoritma ini akan mengulangi hal yang sama lagi yaitu mencari elemen terkecil yang ada di dalam array dan kemudian menukarnya (swap) dengan elemen yang ada di posisi kedua (mengingat elemen di posisi pertama sudah berhasil kita sorting). Proses ini akan terus berlanjut sampai semua elemen yang ada di dalam array telah berhasil kita sorting.
Sumber : https://medium.com/@opam22/sorting-algorithms-selection-sort-50-100-cafd95ae9f91
CONTOH PROGRAM SELECTION SORT
package belajaralgoritma;
public class SelectionSortAmir {
public static void main(String[] args) {
//auto gen random data
int[] data = new int [10];
int panjang = data.length;
int acak, i, ulang, tmp, pos, min, index;
System.out.print("data : ");
for(i=0;i<panjang;i++) {
acak = (int) (Math.random()*panjang);
data[i] = acak;
System.out.print(data[i]);
}
//mulai selection sort
long start = System.nanoTime();
for(ulang=0;ulang<panjang;ulang++) {
pos=ulang;
min=data[ulang];
for(index=ulang;index<data.length;index++) {
if(data[index] < min) {
min=data[index];
pos=index;
}
}
if(pos!=ulang) {
tmp=data[ulang];
data[ulang]=data[pos];
data[pos]=tmp;
}
}
long stop = System.nanoTime();
System.out.print("\ndata : ");
for(i=0;i<panjang;i++) {
System.out.print(data[i]);
}
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
Jumat, 08 November 2019
PERBANDINGAN WAKTU SORTING BUBBLE SORT BIASA DAN SORTING BUBBLE SORT MODIFIKASI
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
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
Langganan:
Postingan (Atom)








