Pengurutan Selection Sort bahasa C

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
#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.
Previous
Next Post »
Thanks for your comment