Sorting
dalam bahasa C
Sorting dalam bahsa c dapat mempercepat operasi
pencarian dalam daftar.
Sorting mempunyai 2 tipe yaitu :
·
Ascending
·
Descending
Sorting dalam algoritma mempunyai 2 arti : internal
dan eksternal
Internal sorting adalah semua data yang akan
diurutkan dimuat kedalam RAM.
Eksternal sorting adalah penyortirannya tersebut
memakai penyimpanan sekunder.
Sorting juga terbagi lagi ada yang simple dan ada
yang menengah.
Yang termasuk kedalam simple adalah :
·
Bubble sort
·
Selection sort
·
Insertion sort
Yang termasuk kedalam menengah adalah :
·
Quick sort
·
Merge sort
Sekarang saya akan menjelaskan satu persatu
Bubble
sort
Bubble sort bisa disebut membandingkan kedua nilai
yang berdekatan dan ditukar (jika perlu) intinya pertukaran suatu yang ingin
dibandingkan.
Contoh kodingan dari bubble sort yaitu :
void Bubble(int *DataArr, int n)
{
int i, j;
for(i=1; i<n; i++)
for(j=n-1; j>=i; j--)
if(DataArr[j-1]
> DataArr[j])
Swap(&DataArr[j-1],&DataArr[j]);
}
Dia akan membandingan antara yang kecil dengan yang
disampingnya.
Seletion
sort
Dalam kodingannya :
Algorithm:
for(i=0; i<N-1; i++){ /* N=number of data */
Set idx_smallest equal
to i
for(j=i+1; j<N; j++){
If array[ j ] < array [ idx_smallest ]
then idx_smallest =
j
}
Swap
array[ i ] with array[ idx_smallest ]
}
Selection hampir sama sepemahan saya dia lebih
langsung ketimbang bubble sort
Insertion
sort
Dalam kodingannya :
for(i=1; i<n; i++) {
x = A[i], insert x to its
suitable place between A[0] and A[i-1].
}
Insertion sort hampir sama juga dengan kedua sort
diatas namun insertion memiliki wadah untuk menampung apa yang ingin diseleksi.
Wadah tersebut yang akan diisi untuk menyeleksi
namun itu hanya sementara setelah itu nilai akan terseleksi ke tempat yang
lebih tepat.
Quick
sort
Dalam kodingannya :
void QuickSort(int left, int right)
{
if(left < right){
//arrange elements R[left],...,R[right] that
//producing new sequence:
R[left],...,R[J-1] < R[J] and R[J+1],...,R[right] > R[J].
QuickSort(left, J-1);
QuickSort(J+1, right);
}
}
Merge
sort
Merge sort adalah pengurutan algoritma berdasarkan
algoritma devide dan conquer.
Divide-and-conquer adalah paradigma desain algoritma umum
Devide : membagi input data dalam dua subset yang
disatukan
Recur: pecahkan masalah sub yang terkait dengan
subhimpunan
Conquer: menggabungkan solusi untuk setiap bagian menjadi
solusi
Tidak ada komentar:
Posting Komentar