Pengimplementasian metode Sorting (Algoritma & Struktur data) pada bahasa C
Sorting / pengurutan biasanya dilakukan untuk tujuan mempermudah pencarian. Pengurutan data baik dari segi ascending (dari nilai terkecil ke terbesar) atau descending (dari nilai terbesar ke terkeci).Ketika akan melakukan sortir di computer , maka hal-hal yang akan dipertimbangkan ,meliputi :
Contoh : 8,3,7,4 Pada langkah pertama, elemen kedua akan dibandingkan dengan elemen pertama, 3 dibandingkan dengan 8 , karena 3 lebih kecil dari 8, maka kedua elemen tersebut saling ditukar tempatnya yang menghasilkan urutan 3,8,7,4 (dua elemen pertama sudah diurut). Pada langkah kedua , elemen ketiga akan dibandingkan dengan 8 , terjadi penukaran tempat yang menghasilkan urutan 3,7,8,4. Selanjutnya 7 tersebut dibandingkan dengan elemen pertama, yaitu 3. Tidak terjadi penukaran tempat (3 elemen pertama sudah diurut). Pada langkah ketiga , elemen keempat yaitu 4 dibandingkan dengan elemen ketiga. Angka 4 lebih kecil dari 8, terjadi penukaran tempat, hasil sementara adalah 3,7,4,8. Angka 4 tadi dibandingkan dengan elemen kedua,4 lebih kecil dari 7, terjadi penukaran tempat, hasil sementara adalah 3,4,7,8. Selanjutnya angka 4 tadi dibandingkan dengan elemen pertama, yaitu 3. Karena 4 lebih besar dari 3, maka tidak terjadi penukaran tempat lagi (empat elemen pertama sudah urut=hasil akhir). Sub-sub langkahnya ketiganya : 3,7,8,4 (awal) -> 4 dibandingkan 8, ditukar hasilnya : 3,7,4,8 -> 4 banding 7, tukar, hasilnya : 3,4,7,8 -> 4 banding 3,tetap hasilnya : 3,4,7,8 (akhir) Sintak Implementasi insertion sort dalam bhs C adalah sbb:
Contoh sortir umum yang menggambarkan exchange sort adalah bubble sort. Algoritma dari teknik ini adalah dengan melakukan proses perbandingan sebanyaknya n elemen dimulai dari n=1 (selanjutnya disebut mulai=1). Bandingkan seluruh elemen diawali dari elemen sebelah kanan hingga ke n. Bila elemen tersebut < 1="n." i="0;" j="(i+1);"> data[j]) tukar(i,j); } } cout<<"Exchange sort selesai!"; } Exchange sort->Bubble sort pada bahasa C : void bubble_sort() { For (int i=1;i=i;j–) { If (data[j] < temp =" data[a];"> sumber : http://erick-roezbiantara.blogspot.com
- Perlu tidaknya data disortir
- Besarnya atau banyaknya data yang akan disortir
- Kemampuan atau kapasitas computer atau media penyimpanan data
- Metode sortir
- Insertion sort (sortir penyisipan)
- Selection sort (sortit pemilihan)
- Exchange short (sortir penukaran)
Contoh : 8,3,7,4 Pada langkah pertama, elemen kedua akan dibandingkan dengan elemen pertama, 3 dibandingkan dengan 8 , karena 3 lebih kecil dari 8, maka kedua elemen tersebut saling ditukar tempatnya yang menghasilkan urutan 3,8,7,4 (dua elemen pertama sudah diurut). Pada langkah kedua , elemen ketiga akan dibandingkan dengan 8 , terjadi penukaran tempat yang menghasilkan urutan 3,7,8,4. Selanjutnya 7 tersebut dibandingkan dengan elemen pertama, yaitu 3. Tidak terjadi penukaran tempat (3 elemen pertama sudah diurut). Pada langkah ketiga , elemen keempat yaitu 4 dibandingkan dengan elemen ketiga. Angka 4 lebih kecil dari 8, terjadi penukaran tempat, hasil sementara adalah 3,7,4,8. Angka 4 tadi dibandingkan dengan elemen kedua,4 lebih kecil dari 7, terjadi penukaran tempat, hasil sementara adalah 3,4,7,8. Selanjutnya angka 4 tadi dibandingkan dengan elemen pertama, yaitu 3. Karena 4 lebih besar dari 3, maka tidak terjadi penukaran tempat lagi (empat elemen pertama sudah urut=hasil akhir). Sub-sub langkahnya ketiganya : 3,7,8,4 (awal) -> 4 dibandingkan 8, ditukar hasilnya : 3,7,4,8 -> 4 banding 7, tukar, hasilnya : 3,4,7,8 -> 4 banding 3,tetap hasilnya : 3,4,7,8 (akhir) Sintak Implementasi insertion sort dalam bhs C adalah sbb:
void insertionsort(int arr[]) {
int i,j;
for (i = 1; i <>
int temp = arr[i];
int pos = i;
for (j = i; j > 0; j--) {
if (temp <>
arr[j] = arr[j-1];
pos--;
}
}
arr[pos]=temp;
}
}
void insertion_sort()
{
int temp, i, j;
for (i=1; i
{
temp = data[i];
j = i-1;
while (data[j] > temp && j>=0)
{
data[j+1] = data[j];
j--;
}
data[j+1] = temp;
}
cout<<"insertion sort selesai!"; }
2. Selection sort Teknik ini adalah mencari nilai elemen terkecil kemudian letakkan dan tukar dengan posisi n (n mulai dari 1 hingga elemen terakhir -1). Contoh : 8,3,7,4 Pada langkah pertama, hasil sortirnya 3, 8,7,4 (mulai dari elemen pertama, elemen terkecil = 3, letakkan dan tukarkan dengan elemen pertama). Pada langkah kedua , hasil sortirnya 3,4,7,8 (mulai dari elemen kedua, elemen terkecil = 4, letakkan dan tukarkan dengan elemen kedua). Pada langkah ketiga , hasil sortirnya 3,4,7,8 (mulai dari elemen ketiga, elemen terkecil =7, letakkan dan tukarkan dengan elemen ketiga, hasilnya ternyata tetap). Sintak Implementasi selection sort dalam bhs C adalah sbb:void selection_sort() { int pos, i, j; for (i=0; i { pos = i; for (j=i+1; j { if (data[j] < pos =" j; } if (pos != i) tukar(pos,i); } cout<<" i =" 0;">
int min = arr[i];
int pos = i;
for (j = i; j <>
/* Cari nilai yang terkecil */
if (arr[j] <>
min = arr[j];
pos = j;
}
}
/* Tukar nilai terkecil ke arr[i] jika pos tdk sama i */
if(i!=pos) {
int temp = arr[i];
arr[i] = arr[pos];
arr[pos] = temp;
}
}
}
3. Exchange sortContoh sortir umum yang menggambarkan exchange sort adalah bubble sort. Algoritma dari teknik ini adalah dengan melakukan proses perbandingan sebanyaknya n elemen dimulai dari n=1 (selanjutnya disebut mulai=1). Bandingkan seluruh elemen diawali dari elemen sebelah kanan hingga ke n. Bila elemen tersebut < 1="n." i="0;" j="(i+1);"> data[j]) tukar(i,j); } } cout<<"Exchange sort selesai!"; } Exchange sort->Bubble sort pada bahasa C : void bubble_sort() { For (int i=1;i=i;j–) { If (data[j] < temp =" data[a];"> sumber : http://erick-roezbiantara.blogspot.com
1 Komentar untuk "contoh Sorting dalam c++"
Artikelnya bermanfaat kak, ini saya juga punya artikel tentang selection sort, semoga dapat saling melengkapi
Selection Sort dalam Bahasa C (Materi + Koding)