Selection Sort

selection sort adalah metode pengurutan dengan cara memindahkan elemen
dengan cara membandingkan elemen sekarang dengan elemen yang berikutnya
sampai dengan elemen terakhir . Jika ditemukan elemen lain yang lebih
kecil dari elemen sekarang maka dicatat posisinya dan kemudian ditukar
dan begitu seterusnya.
Dari proses pengurutannya, Selection sort ini memiliki dua buah varian yaitu :
1. Maximum Sort
memilih data yang
maksimum dari suatu kumpulan data larik, lalu menempatkan data tersebut
ke elemen paling akhir atau paling awal sesuai pengurutan yang
diinginkan. Data maksimum/minimum yang diperoleh, “diisolasi” dan tidak
diikutsertakan pada proses pencarian data maksimum berikutnya.
2. Minimum Sort
memilih data yang
minimum dari suatu kumpulan data larik , lalu menempatkan data tersebut
ke elemen paling akhir atau paling awal sesuai pengurutan yang
diinginkan. Data minimum yang diperoleh, “diisolasi” dan tidak
diikutsertakan pada proses pencarian data minimum berikutnya.
--------------------------------contoh program selection sort ----------------------------------
# include stdio.h
# include conio.h
const int maks = 1000;
typedef int array [maks+1];
void masukan(array simpan, int n);
void SelectionSort(array &simpan, int n);
void sebelum(array simpan, int n);
void sesudah(array simpan, int n);
int main()
{
int n;
array simpan;
printf("masukkan jumlah data yang diinginkan : ");
scanf("%d", &n);
masukan(simpan, n);
sebelum(simpan, n);
SelectionSort(simpan, n);
sesudah(simpan, n);
}
void masukan(array simpan, int n)
{
int c;
for(c=1; c<=n; c++)
{
printf("Data ke %d = ", c);
scanf("%d", &simpan[c]);
}
}
void SelectionSort(array &simpan, int n)
{
int i, k, Help, mini;
for (i=1; i <= n-1; i++)
{
mini = i;
for (k=i+1; k<=n; k++)
{
if (simpan[k] < simpan[mini])
{
Help = simpan[mini];
simpan[mini] = simpan[k];
simpan[k] = Help;
}
}
}
}
void sebelum(array simpan, int n)
{
int c;
printf("\n\nData sebelum di urutkan : \n");
for (c=1; c<=n; c++)
{
printf("[%d]", simpan[c]);
}
}
void sesudah(array simpan, int n)
{
int c;
printf("\n\nData setelah di urutkan : \n");
for(c=1; c<=n; c++)
{
printf("[%d]",simpan[c]);
}
}
# include conio.h
const int maks = 1000;
typedef int array [maks+1];
void masukan(array simpan, int n);
void SelectionSort(array &simpan, int n);
void sebelum(array simpan, int n);
void sesudah(array simpan, int n);
int main()
{
int n;
array simpan;
printf("masukkan jumlah data yang diinginkan : ");
scanf("%d", &n);
masukan(simpan, n);
sebelum(simpan, n);
SelectionSort(simpan, n);
sesudah(simpan, n);
}
void masukan(array simpan, int n)
{
int c;
for(c=1; c<=n; c++)
{
printf("Data ke %d = ", c);
scanf("%d", &simpan[c]);
}
}
void SelectionSort(array &simpan, int n)
{
int i, k, Help, mini;
for (i=1; i <= n-1; i++)
{
mini = i;
for (k=i+1; k<=n; k++)
{
if (simpan[k] < simpan[mini])
{
Help = simpan[mini];
simpan[mini] = simpan[k];
simpan[k] = Help;
}
}
}
}
void sebelum(array simpan, int n)
{
int c;
printf("\n\nData sebelum di urutkan : \n");
for (c=1; c<=n; c++)
{
printf("[%d]", simpan[c]);
}
}
void sesudah(array simpan, int n)
{
int c;
printf("\n\nData setelah di urutkan : \n");
for(c=1; c<=n; c++)
{
printf("[%d]",simpan[c]);
}
}
oke sekian dulu untuk kali ini ya... karena fans saya yg lain (tugas) sudah menanti... hehhe :D
Tidak ada komentar:
Posting Komentar