S orting Algorithma
Sorting adalah proses menyusun elemen –
elemen dengan tata urut tertentu dan proses tersebut terimplementasi dalam
bermacam aplikasi. Kita ambil contoh pada aplikasi perbankan. Aplikasi tersebut
mampu menampilkan daftar account yang aktif. Hampir seluruh pengguna pada
sistem akan memilih tampilan daftar berurutan secara ascending demi kenyamanan
dalam penelusuran data.
Salah
satu bagian penting dari struktur data adalah sorting atau pengurutan data. Ada
banyak sekali Algoritma pengurutan data di dunia computer, dan Setiap algoritma memiliki kelebihan dan
kekurangan masing – masing.
Dan
langsung masuk yang pertama
1
Merge sort
Merge sort menggunakan pola divide
and conquer. Dengan hal ini deskripsi dari algoritma dirumuskan dalam 3 langkah
berpola divide-and-conquer. Berikut menjelaskan langkah kerja dari Merge sort.
1. Divide Memilah elemen – elemen dari
rangkaian data menjadi dua bagian.
2. Conquer Conquer setiap bagian
dengan memanggil prosedur merge sort secara rekursif
3. Kombinasi Mengkombinasikan dua
bagian tersebut secara rekursif untuk mendapatkan rangkaian data berurutan
Proses
rekursi berhenti jika mencapai elemen dasar. Hal ini terjadi bilamana bagian
yang akan diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen
tersebut menandakan bahwa bagian tersebut telah terurut sesuai rangkaian.
AlGORITMA
int startIdx,
int endIdx)
{
if (array.length != 1)
{ //Membagi rangkaian data, rightArr dan leftArr
mergeSort(leftArr, startIdx, midIdx); mergeSort(rightArr, midIdx+1, endIdx);
combine(leftArr, rightArr);
}
}
2 Q
Quicksort
ditemukan oleh C.A.R Hoare. Seperti pada merge sort, algoritma ini juga
berdasar pada pola divide-and-conquer. Berbeda dengan merge sort.
ALGORITMA
int leftIdx, int rightIdx)
{
int pivotIdx;
/* Kondisi Terminasi */
if (rightIdx > leftIdx)
{
pivotIdx = partition(array, leftIdx, rightIdx);
quickSort(array, leftIdx, pivotIdx-1);
quickSort(array, pivotIdx+1, rightIdx);
}
3 Bubble Sort
Algoritma Bubble Sort ini merupakan proses pengurutan yang secara berangsur-angsur berpindah ke posisi yang tepat karena itulah dinamakan Bubble yang artinya gelembung. Algoritma ini akan mengurutkan data dari yang terbesar ke yang terkecil (ascending) atau sebaliknya (descending).
Perhatikan kode berikut :
Task 1
1.
Apa yang dilakukan program diatas ?
2.
Lakukan untuk pengurutan sebaliknya!
3. Pengurutan diatas dilakukan dari depan atau
belakangBuat program untuk sebaliknya!
4. Buat program agar user bisa inputkan data secara dinamis, baik untuk ascending, maupun descending!
5.
Tambahkan kode agar user dapat melihat proses pengurutan data!
Note : Ascending adalah pengurutan data dari terkecil menuju terbesar,
sedangkan descending adalah pengurutan dari data terbesar menuju terkecil.

Tidak ada komentar:
Posting Komentar