Saturday, November 3, 2012

0 ALGORITMA SORTING

Algoritma Sorting ada dua : Insertion sort dan selection sort .
Algoritma insertion sort pada dasarnya memilah data yang akan diurutkan menjadi
dua bagian, yang belum diurutkan (meja pertama) dan yang sudah diurutkan (meja
kedua). Elemen pertama diambil dari bagian array yang belum diurutkan dan
kemudian diletakkan sesuai posisinya pada bagian lain dari array yang telah
diurutkan. Langkah ini dilakukan secara berulang hingga tidak ada lagi elemen yang
tersisa pada bagian array yang belum diurutkan.
Sedangkan jika Anda diminta untuk membuat algoritma sorting tersendiri, anda mungkin akan
menemukan sebuah algoritma yang mirip dengan selection sort. Layaknya insertion
sort, algoritma ini sangat rapat dan mudah untuk diimplementasikan.
Mari kita kembali menelusuri bagaimana algoritma ini berfungsi terhadap satu paket
kartu. Asumsikan bahwa kartu tersebut akan diurutkan secara ascending. Pada
awalnya, kartu tersebut akan disusun secara linier pada sebuah meja dari kiri ke
kanan, dan dari atas ke bawah. Pilih nilai kartu yang paling rendah, kemudian
tukarkan posisi kartu ini dengan kartu yang terletak pada pojok kiri atas meja. Lalu
cari kartu dengan nilai paling rendah diantara sisa kartu yang tersedia. Tukarkan
kartu yang baru saja terpilih dengan kartu pada posisi kedua. Ulangi langkah –
langkah tersebut hingga posisi kedua sebelum posisi terakhir dibandingkan dan
dapat digeser dengan kartu yang bernilai lebih rendah.
J.E.N.I.
Pengenalan Pemrograman 2 3
Ide utama dari algoritma selection sort adalah memilih elemen dengan nilai paling
rendah dan menukar elemen yang terpilih dengan elemen ke-i. Nilai dari i dimulai
dari 1 ke n, dimana n adalah jumlah total elemen dikurangi 1.
Sebagai contoh saya membuat algoritma insertion sort , inilah codingnya :
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package polimorfisme;

/**
 *
 * @author PERSONAL
 */
public class sorting {

    static int[] selection(int dataAll[]) {

        for (int data1 = 0; data1 < dataAll.length; data1++) {

            int data2 = data1;
            for (int tmpData2 = data1 + 1; tmpData2 < dataAll.length; tmpData2++) {
                if (((Comparable) dataAll[data1]).compareTo(dataAll) > 0) {
                    int a = dataAll[data2];
                    dataAll[data2] = dataAll[tmpData2];
                    dataAll[tmpData2] = a;

                }

            }
        }
        return dataAll;
    }

    static int[] insertion(int[] data) {
        for (int i = 1; i < data.length; i++) {
            int j = i;
            int tmpData = data[i];
            while ((j > 0) && (data[j - 1] > tmpData)) {
                data[j] = data[j - 1];
                j--;
            }
            data[j] = tmpData;
        }
        return data;
    }

    public static void main(String[] args) {
        int data[] = new int[]{4, 3, 10, 7};
        int dataHasilSort[] = insertion(data);
        for (int i = 0; i <= dataHasilSort.length - 1; i++) {
            int j = dataHasilSort[i];
            System.out.println(j);

        }

    }
}

0 comments:

Post a Comment

 

Ikbal Achmad Fahreza Copyright © 2011 - |- Template created by O Pregador - |- Powered by Blogger Templates