Minggu, 15 Agustus 2010

Sorting Pada Java menggunakan Insertion Sort

Diposting oleh ardie90




Ini Merupakan tugas MK pada waktu nempuh Desain dan Analisa Algoritma:
 Insertion sort adalah contoh dari algoritma yang dapat melakukan pengurutan data secar tepat,cepat dan akurat.Prinsip dasar dari Insertion sort adalah mengurutkan data yang acak baik dari nilai terbesar ke yang kecil maupun sebaliknya dari yang terkecil ke yang terbesar dengan cara mencari nilai yang diinginkan dan ditukar dengan tempat yang paling kiri atau kanan sesuai dengan perintah sort.
Pengertian:
Sorting = Pengurutan
Sorted = Terurut menurut kaidah / aturan tertentu
Data pada umumnya disajikan dalam bentuk sorted.
Contoh :
Nama di buku telephone
      • Kata-kata dalam kamus
      • File-file di dalam sebuah directory
      • Indeks sebuah buku
      • Data mutasi rekening tabungan
      • CD di toko music
Bayangkan jika diatas tidak terurut….!
Insertion Sort :Contoh
Proses 1
0
1
2
3
4
7
6
3
1
4
Pembanding Posisi
7 < 6 0
Pertukarannya :
0
1
2
3
4
6
7
3
1
4
Proses 2
0
1
2
3
4
6
7
3
1
4
Pembanding Posisi
7 < 3 1
6 < 3 0
Pertukarannya
0
1
2
3
4
3
6
7
1
4





Proses 3
0
1
2
3
4
3
6
7
1
4






Pembanding Posisi
7 < 1 2
6 < 1 1
3 < 1 0
Pertukaran
0
1
2
3
4
1
3
6
7
4






Proses 4
0
1
2
3
4
1
3
6
7
4






Pembanding Posisi
7 < 4 3
6 < 4 2
Pertukan
0
1
2
3
4
1
3
4
6
7


Insertion Sort :Algoritma
(algoritma ditulis dengan menggunakan bahasa java)
public static void insertionSort (int[] a)
{

for (int ii = 1; ii < a.length; ii++) {

pengambilan elemen pertama dalam unsorted list
int jj = ii;

while (( jj > 0) && (a[jj] < a[jj - 1]))
{
Menyisipkan ke dalam sorted list
int temp = a[jj];
a[jj] = a[jj - 1];
a[jj - 1] = temp;
jj--;
}}
Algoritma Insertion Sort - ascending
Untuk pengurutan secara descending,hanya perlu mengganti pada baris ke 4 dengan perintah sebagai berikut :
while (( jj > 0) && (a[jj] > a[jj – 1]))