Untuk beberapa penjelasan singkat mengenai judul diatas saya hanya akan memberi sedikit saja karena saya yakin anda pasti telah memiliki buku penggangan atau panduan tenatng materi ini. Jadi untuk apa saya jelaskan secara terperinci. Malah jadi terlihat sok pinter atau sok tau. Bener ga??
Sorting adalah proses menyusun kembali data - data yang telah disusun atau masih acak, sehingga menjadi tersusun secara teratur menurut aturan/ pola tertentu.
Pada umumnya ada 2 macam pengurutan, yaitu :
1. Pengurutan secara ascending (urut naik)
2. Pengurutan secara descending (urut turun)
Algoritma untuk melakukan Sorting berbagai macam, antara lain :
1. Bubble Sort
2. Selection Sort
3. Quick Sort
4. Merge Sort (Ini yang saya belum paham)
Sepertinya hanya itu saja yang saya jelaskan, seperti di postingan saya sebelumnya adalah yang terpenting bukanlah penjelasannya tapi program yang saya tampilkan.
Contoh Program Bubble Sort
Contoh Program Quick Sort
Sorting adalah proses menyusun kembali data - data yang telah disusun atau masih acak, sehingga menjadi tersusun secara teratur menurut aturan/ pola tertentu.
Pada umumnya ada 2 macam pengurutan, yaitu :
1. Pengurutan secara ascending (urut naik)
2. Pengurutan secara descending (urut turun)
Algoritma untuk melakukan Sorting berbagai macam, antara lain :
1. Bubble Sort
2. Selection Sort
3. Quick Sort
4. Merge Sort (Ini yang saya belum paham)
Sepertinya hanya itu saja yang saya jelaskan, seperti di postingan saya sebelumnya adalah yang terpenting bukanlah penjelasannya tapi program yang saya tampilkan.
Contoh Program Bubble Sort
#include <stdio.h>
int cacahtukar = 1;
void tukar (int a[], int i, int j)
{
int tampung = a[i];
a[i] = a[j];
a[j] = tampung;
printf ("%d. Menukar a [%d] dan a [%d]\n",cacahtukar++,i,j);
}
void bubble (int a[], int n)
{
int i;
int Ditukar;
do
{
Ditukar =0;
for (i=1;i<n; i++)
if (a[i-1]>a[i])
{
tukar(a, i-1, i);
Ditukar = 1;
}
}
while (Ditukar);
}
void selection (int a[], int n)
{
int i;
int iPos;
int iMin;
for (iPos = 0; iPos < n; iPos++)
{
iMin = iPos;
for (i = iPos+1; i<n; i++)
{
if (a[i] < a[iMin])
{
iMin = i;
}
}
if (iMin != iPos)
{
tukar (a, iPos,iMin);
}
}
}
int main()
{
int A[9]={33,112,75,11,34,143,360,45,20};
int n;
printf ("--=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-www.bocahit.com-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n");
printf("Sebelum pengurutan : \n");
for (n=0;n<9;n++)
printf ("A[%d]=%d\n",n,A[n]);
selection (A,9);
//bubble (A,9);
printf ("Setelah pengurutan : \n");
for (n=0;n<9;n++)
printf ("A[%d]=%d \n",n,A[n]);
printf("Hilangkan tanda komentar untuk mengganti jenis pengurutan");
return 0;
}
//Terima Kasih Telah Berkunjung, Admin bocahit.com => Herlambang W Wammy
Contoh Program Quick Sort
#include<stdio.h>
int cacahtukar = 1;
void tukar (int a[],int i,int j)
{
int tampung = a[i];
a[i] = a[j];
a[j] = tampung;
printf("%d. menukar a[%d] dan a[%d]\n",cacahtukar++,i,j);
}
void q_sort (int a[],int kiri,int kanan)
{
int poros,kiri_ctt,kanan_ctt;
kiri_ctt = kiri;
kanan_ctt = kanan;
poros = a[kiri];
while(kiri < kanan)
{
while((a[kanan] < poros) && (kiri < kanan))
kanan--;
if (kiri != kanan)
{
a[kiri] = a[kanan];
kiri++;
}
while((a[kiri] >= poros) && (kiri < kanan))
kiri++;
if (kiri != kanan)
{
a[kanan] = a[kiri];
kanan--;
}
}
a[kiri] = poros;
poros = kiri;
kiri = kiri_ctt;
kanan = kanan_ctt;
if (kiri < poros)
q_sort(a,kiri,poros-1);
if (kanan > poros)
q_sort(a,poros+1,kanan);
}
void quickSort (int a[],int array_size)
{
q_sort (a,0,array_size - 1);
}
int main()
{
int A[10] = {33,11,120,73,51,37,19,30,32,34};
int n;
printf("\nSebelum Pengurutan : \n");
for (n=0;n<10;n++)
printf("A[%d]=%d\n",n,A[n]);
printf("\n");
quickSort(A,10);
printf("\nSetelah Pengurutan : \n");
for(n=0;n<10;n++)
printf("A[%d]=%d\n",n,A[n]);
return 0;
}