loading...
Pengurutan Selection Sort bahasa C
Setelah sebelumnya membahas tentang Bubble Sort selanjutnya adalah Selection Sort berikut ini.
Pengurutan (Selection)
Metode ini memiliki konsep memilih data yang maksimum/minimum dari suatu kumpulan data larik L, lalu menempatkan data tersebut ke elemen paling akhir atau paling awal sesuai pengurutan yang diinginkan. Data maksimum/minimum yang diperoleh, diasingkan ke tempat lain, dan tidak diikutsertakan pada proses pencarian data maksimum/minimum berikutnya. Perhatikan ilustrasi berikut :
Misalkan ada sekumpulan data acak berjumlah n elemen yang disimpan di dalam larik L, akan diurut menaik, maka langkah-langkah yang harus dilakukan adalah :
1. Menentukan jumlah iterasi, yaitu pass = n-2
2. Untuk setiap pass ke-I = 0,1,2, … , pass, lakukan
a. Cari elemen terbesar (maks) dari elemen ke-i sampai ke-(n-1)
b. Pertukaran maks dengan elemen ke-i
c. Kurangin n sayu (n = n -1)
Rincian tiap-tiap pas adalah sebagai berikut :
- pass 0
Cari elemen maksimum di dalam L[0 … (n-1)].
Pertukarkan elemen maksimum dengan elemen L[n-1]
- pass 1
Cari elemen maksimum di dalam L[0 .. (n-2)]
Pertukarkan elemen maksimum dengan elemen L[n-2]
- pass 2
Cari elemen maksimum di dalam L[0 .. (n-3)]
Pertukarkan elemen maksimum dengan elemen L[n-3]
- pass 3
Cari elemen maksimum di dalam L[0 .. 1]
Pertukarkan elemen maksimum dengan elemen L[1]
Contoh Selection Sort
output
Setelah sebelumnya membahas tentang Bubble Sort selanjutnya adalah Selection Sort berikut ini.
Pengurutan (Selection)
Metode ini memiliki konsep memilih data yang maksimum/minimum dari suatu kumpulan data larik L, lalu menempatkan data tersebut ke elemen paling akhir atau paling awal sesuai pengurutan yang diinginkan. Data maksimum/minimum yang diperoleh, diasingkan ke tempat lain, dan tidak diikutsertakan pada proses pencarian data maksimum/minimum berikutnya. Perhatikan ilustrasi berikut :
Misalkan ada sekumpulan data acak berjumlah n elemen yang disimpan di dalam larik L, akan diurut menaik, maka langkah-langkah yang harus dilakukan adalah :
1. Menentukan jumlah iterasi, yaitu pass = n-2
2. Untuk setiap pass ke-I = 0,1,2, … , pass, lakukan
a. Cari elemen terbesar (maks) dari elemen ke-i sampai ke-(n-1)
b. Pertukaran maks dengan elemen ke-i
c. Kurangin n sayu (n = n -1)
Rincian tiap-tiap pas adalah sebagai berikut :
- pass 0
Cari elemen maksimum di dalam L[0 … (n-1)].
Pertukarkan elemen maksimum dengan elemen L[n-1]
- pass 1
Cari elemen maksimum di dalam L[0 .. (n-2)]
Pertukarkan elemen maksimum dengan elemen L[n-2]
- pass 2
Cari elemen maksimum di dalam L[0 .. (n-3)]
Pertukarkan elemen maksimum dengan elemen L[n-3]
- pass 3
Cari elemen maksimum di dalam L[0 .. 1]
Pertukarkan elemen maksimum dengan elemen L[1]
Contoh Selection Sort
#include <stdio.h>
#define N 20
int a,b,S[N];
void selectionsort(int n)
{ int temp;
for (a=1;a<=n-1;a++)
{
for (b=a;b<n;b++)
{
if (S[a-1] <=S[b])
{
temp = S[a-1];
S[a-1] = S[b];
S[b] = temp;
}
}
}
}
int main()
{
int jml;
printf("SELECTION SORT \n\n");
printf("Enter size of Array = ");
scanf("%d", &jml);
printf("\n");
// input data
for (a=0;a<jml;a++)
{
printf("Bilangan ke %d : ",a+1);
scanf("%d",&S[a]);
}
printf("\n");
printf("Array Sebelum disorting : \n");
for(a=0;a<jml;a++)
{
printf("%d ",S[a]);
}
printf("\n");
// mengurutkan data
selectionsort(jml);
// menampilkan data
printf("After Sorting : \n");
for (a=0;a<jml;a++)
{
printf("%d ",S[a]);
}
return 0;
}
output
Itulah yang dapat saya sampaikan tentang Pengurutan Selection Sort bahasa C jika ada pertanyaan sampaikan dikolom komentar.Semoga dapat membantu dan bermanfaat.
ConversionConversion EmoticonEmoticon