Sorting X
Sebenarnya pada pertemuan ke – 6 ini, tidak
di sebutkan secara langsung sorting yang dimaksud, setelah mencari - cari referensi
tentang sorting yang dimaksud, saya menemukan beberapa kemiripan pada sorting
jenis Insertion Sort jadi di resume ini saya mengambil Insertion Sort
Sebagai materi kali ini. Berikut pemaparannya
Insertion Sort Java
Insertion sort yang ada dalam bahasa pemrograman Java adalah
algoritma pengurutan sederhana yang memungkinkan pengurutan larik di tempat
yang efisien, satu elemen pada satu waktu. Dengan adanya penyortiran di tempat,
yang dimaksud di sini adalah bahwa array asli dimodifikasi dan tidak diperlukan
struktur sementara.
Array hampir dibagi menjadi bagian yang diurutkan dan tidak
disortir kemudian ditempatkan pada posisi yang benar di bagian yang diurutkan.
Untuk mengurutkan array berukuran n dalam urutan menaik,
Anda bisa menggunakan cara-cara berikut ini:
1: Iterasi dari arr[1] ke arr[n] di atas array.
2: membandingkan elemen (val) saat ini dengan pendahulunya.
3: Jika elemen key lebih kecil dari pendahulunya, bandingkan
dengan elemen sebelumnya. Pindahkan elemen yang lebih besar satu posisi ke atas
untuk memberi ruang bagi elemen yang ditukar.
Contoh:
15, 7, 17, 5, 6
Mari kita lakukan dan terapkan perulangan untuk i = 1
(elemen kedua dari array) ke 7 (elemen terakhir dari array)
i = 1. Karena 7 lebih kecil dari 15, pindahkan 15 dan
masukkan 7 sebelum 15
7, 15, 17, 5, 6
i = 2. 17 akan tetap pada posisinya karena semua elemen di
A[0..I-1] lebih kecil dari 17
7, 15, 17, 5, 6
i = 3. 5 akan bergerak ke awal dan semua elemen lain dari 7
hingga 17 akan bergerak satu posisi di depan posisi mereka saat ini.
5, 7, 15, 17, 6
i = 7. 6 akan berpindah ke posisi setelah 5, dan elemen dari
7 hingga 17 akan bergerak satu posisi di depan posisinya saat ini.
5, 6, 7, 15, 17
Berikut adalah contoh penerapannya:
package Pertemuan6;
import java.util.*;
public class InsertionSort {
public static void main(String[] args) {
int[] numArray = {15,7,17,5,6};
System.out.println("Sebelum insertion sort di
terapkan : " + Arrays.toString(numArray));
for(int i = 1; i < numArray.length-1; i++){
int temp = numArray[i];
int j = i - 1;
while( j >= 0 && temp <= numArray[j]) {
numArray[j + 1] = numArray[j];
j = j - 1;
}
numArray[j + 1] = temp;
}
System.out.println("Setelah di sorting : " + Arrays.toString(numArray));
}
}
Komentar
Posting Komentar