Sampurasun . . .
Insertion Sort
public class ClassInsertion {
public static void main(String[] args) {
Scanner scan = new Scanner (System.in);
System.out.print("Masukan angka yang akan di masukan : ");
int jmlAngka = scan.nextInt();
System.out.println("");
int bil[] = new int [jmlAngka];
for (int i=0;i<jmlAngka;i++){
System.out.print("Silakan masukan angka "+(i+1)+ " : ");
bil[i] = scan.nextInt();}
InsertionAsc(bil,bil.length);
System.out.println("\n--------------------------------");
System.out.print("Hasil pengurutan Ascending : ");
for(int i = 0; i < bil.length; i++){
System.out.print(bil[i] + " ");
}
InsertionDesc(bil,bil.length);
System.out.println("\n--------------------------------");
System.out.print("Hasil pengurutan Descending : ");
for(int i = 0; i < bil.length; i++){
System.out.print(bil[i] + " ");
}
System.out.println("\n--------------------------------");
}
static int [] InsertionAsc(int bilangan[], int n)
{
for (int i = 1; i < n; i++){
int j = i;
int B = bilangan[i];
while ((j > 0) && (bilangan[j-1] > B)){
bilangan[j] = bilangan[j-1];
j--;
}
bilangan[j] = B;
}
return bilangan;
}
static int [] InsertionDesc(int bilangan[], int n)
{
for (int i = 1; i < n; i++){
int j = i;
int B = bilangan[i];
while ((j > 0) && (bilangan[j-1] < B)){
bilangan[j] = bilangan[j-1];
j--;
}
bilangan[j] = B;
}
return bilangan;
}
}
ini dia hasil nya
Sekarang kita bahas
Selection Sort
di lihat dari hasilnya , sebenarnya sama saja , tapi di sini yang membedakan bagai mana memproses data nya , coba lihat lagi algortima programnya yang di atas , kemudian untuk penggunaan nya tergantung kepada programernya masing masing , mana yang lebih efektif untuk di pakai .
Semoga Bermanfaat
kali ini saya akan mempostingkan tetang bagaimana men sorting dalam java , kita langsung saja gan . . .
Sorting adalah sebuah proses di mana merankai benda dalam urutan tertentu dan/atau dalam himpunan yang berbeda.
Sorting adalah sebuah proses di mana merankai benda dalam urutan tertentu dan/atau dalam himpunan yang berbeda.
pengertinanya singkatnya yaitu , sorting berarti menyusun , menyusun suatu unsur unsur yang teracak acak menjadi berurutan , di mana bisa secara Ascending (kecil-besar) dan Descending (besar-kecil), tergantug kebutuhan dari si pemakai .
proses Sorting dalam java terbagi menjadi 4 :
proses Sorting dalam java terbagi menjadi 4 :
- Insertion
- Selection
- Merge Sort
- Quick Sort
dan disini sekarang kan di bahas tentang sorting dengan cara Insertion dan Selection , ayo langsung aja gan pada source code nya ya , hehe :D
Insertion Sort
Algoritma insertion sort yaitu sebuah algoritma sederhana
yang cukup efisien untuk mengurutkan sebuah list yang hampir terurut. Cara
kerja algoritma ini adalah dengan mengambil elemen list.
satu-per-satu dan memasukkannya di posisi yang benar seperti
namanya. Pada array, list yang baru dan elemen sisanya dapat berbagi tempat di
array, meskipun cukup rumit. Untuk menghemat memori, implementasinya
menggunakan pengurutan di tempat yang membandingkan elemen saat itu dengan
elemen sebelumnya yang sudah diurut, lalu menukarnya terus sampai posisinya
tepat. Hal ini terus dilakukan sampai tidak ada elemen tersisa di input. Salah satu implementasinya pada
kehidupan sehari-hari adalah saat kita mengurutkan kartu remi. Kita ambil kartu
satuper-satu lalu membandingkan dengan kartu sebelumnya untuk mencari posisi
yang tepat.
public class ClassInsertion {
public static void main(String[] args) {
Scanner scan = new Scanner (System.in);
System.out.print("Masukan angka yang akan di masukan : ");
int jmlAngka = scan.nextInt();
System.out.println("");
int bil[] = new int [jmlAngka];
for (int i=0;i<jmlAngka;i++){
System.out.print("Silakan masukan angka "+(i+1)+ " : ");
bil[i] = scan.nextInt();}
InsertionAsc(bil,bil.length);
System.out.println("\n--------------------------------");
System.out.print("Hasil pengurutan Ascending : ");
for(int i = 0; i < bil.length; i++){
System.out.print(bil[i] + " ");
}
InsertionDesc(bil,bil.length);
System.out.println("\n--------------------------------");
System.out.print("Hasil pengurutan Descending : ");
for(int i = 0; i < bil.length; i++){
System.out.print(bil[i] + " ");
}
System.out.println("\n--------------------------------");
}
static int [] InsertionAsc(int bilangan[], int n)
{
for (int i = 1; i < n; i++){
int j = i;
int B = bilangan[i];
while ((j > 0) && (bilangan[j-1] > B)){
bilangan[j] = bilangan[j-1];
j--;
}
bilangan[j] = B;
}
return bilangan;
}
static int [] InsertionDesc(int bilangan[], int n)
{
for (int i = 1; i < n; i++){
int j = i;
int B = bilangan[i];
while ((j > 0) && (bilangan[j-1] < B)){
bilangan[j] = bilangan[j-1];
j--;
}
bilangan[j] = B;
}
return bilangan;
}
}
ini dia hasil nya
Sekarang kita bahas
Selection Sort
algoritma nya yaitu melakukan beberapa kali pass untuk
melakukan penyeleksian elemen struktur data. Untuk sorting ascending (menaik),
elemen yang paling kecil di antara elemen-elemen yang belum urut, disimpan
indeksnya, kemudian dilakukan pertukaran nilai elemen dengan indeks yang
disimpan tersebut dengan elemen yang paling depan yang belum urut. Sebaliknya,
untuk sorting descending (menurun), elemen yang paling besar yang disimpan
indeksnya kemudian ditukar.
public class ClassSelection {
public static void main(String[] args) {
Scanner scan = new Scanner (System.in);
System.out.print("Masukan angka yang akan di masukan : ");
int jmlAngka = scan.nextInt();
System.out.println("");
int bil[] = new int [jmlAngka];
for (int i=0;i<jmlAngka;i++){
System.out.print("Silakan masukan angka "+(i+1)+ " : ");
bil[i] = scan.nextInt();}
SelectionASC(bil);
System.out.println("\n--------------------------------");
System.out.print("Hasil pengurutan Ascending : ");
for(int i = 0; i < bil.length; i++){
System.out.print(bil[i] + " ");
}
SelectionDesc(bil);
System.out.println("\n--------------------------------");
System.out.print("Hasil pengurutan Descending : ");
for(int i = 0; i < bil.length; i++){
System.out.print(bil[i] + " ");
}
System.out.println("\n--------------------------------");
}
static int [] SelectionASC (int[] bil) {
for(int i=0; i<bil.length; i++){
for(int j=i+1; j<bil.length; j++){
if(bil[i] > bil[j]){
int temp = bil[j];
bil[j] = bil[i];
bil[i] = temp;
}
}
}
return bil;
}
static int [] SelectionDesc (int[] bil) {
for(int i=0; i<bil.length; i++){
for(int j=i+1; j<bil.length; j++){
if(bil[i] < bil[j]){
int temp = bil[j];
bil[j] = bil[i];
bil[i] = temp;
}
}
}
return bil;
}
}
ini di hasilnya
ini di hasilnya
di lihat dari hasilnya , sebenarnya sama saja , tapi di sini yang membedakan bagai mana memproses data nya , coba lihat lagi algortima programnya yang di atas , kemudian untuk penggunaan nya tergantung kepada programernya masing masing , mana yang lebih efektif untuk di pakai .
jangan lupa untuk pelajari lagi script nya ok ! , kali ini saya tidak mencantumkan dulu komentar dalam script seperti biasanya , nanti kalau ada waktu saya pasti isi dengan komentar script nya , heheh :D
Hatur Nuhun ,