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 sort
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
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)