Minggu, 15 Mei 2016

selection sorting 5 langkah dan algoritma

assalamuaikum wr.wb

pada kesempatan ini saya akan memposting 5 langkah program selection sort
pertama :
 mencari deret bilangan  terbesar ke terkecil menggunakan selection sort
kedua:
membadingkan bilangan terbesar ke terkecil yang belum di urutkan yang belum di urutkan
ketiga:
program akan membaca dan mengurutkan bilangan terbesar ke terkecil menggunakan selection sort
keempat:
program akan menseleksi deret bilangan yang telah di inputkan dari bilangan terbesar ke terkecil
kelima:
setelah menseleksi deret bilangan  progarm akan mengurutkan bilangan terbesar di pindah ke kanan dan bilangan terkecil pindah ke kiri......


Algoritma sorting data:
{menyorting data dari kecil ke besar, algoritma menerima masukan yaitu batas(n) dan data,, menorting , lalu mencetak}
Procedure baca_data(int A[] ,int n){
Write A[i]
for i ß0,i<n,i++ than input A[i]
}
Procedure cetak_data(const int A[],int n){
for (i = 0; i < n; i++)
cout << A[i];
cout << "\n";
}
Procedure tukar (int *a, int *b)
{ int temp;
temp = *a;
*a = *b;
*b = temp;
}
prosedur minimum(int A[], int dari, int n, int * tempat)
{ int i, min;
min = A[dari];
*tempat = dari;
for (i = dari+1; i<n; i++)
if (A[i] < min)
{ min = A[i];
*tempat = i;
}
Procedure selection_sort(int A[], int n)
{
  int i, t;
for (i = 0; i<n; i++)
{ minimum(A, i, n, &t);
tukar(&A[i], &A[t]);
}

}
}
Deklarasi :
n, A[i]    : integer {input}
A[i]         : integer {output}
Deskripsi :
Read(n,A[i])
For iß0,i<n,i++
Than do sorting
Write(A[i])

 Analisis masalah 
Algoritma pengurutan dengan metode seleksi dapat diilustrasikan demikian. Misalkan
diberikan data awal :
[8, 4, 7, 3, 1, 2, 6, 5]
Data pertama adalah 8. Akan dicari (atau tepatnya “dipilih/diseleksi”) data terkecil dari data
kedua sampai terakhir yang terkecil untuk menempati posisi pertama (i=1) ini. Data terkecil
ditemukan pada posisi ke-5 (t=5). Maka data pertama ditukar dengan data ke-5, menjadi :
[1, 4, 7, 3, 8, 2, 6, 5]
Langkah ini diulang untuk data kedua (i=2). Ditemukan data terkecil pada posisi ke-6 (t=6). Data
ke-2 ditukar dengan data ke-6, menjadi :
[1, 2, 7, 3, 8, 4, 6, 5]
Fase selengkapnya dapat dilihat pada data berikut ini.
Data awal : [8, 4, 7, 3, 1, 2, 6, 5] 1 terkecil, 8< >1
fase 1 [1, 4, 7, 3, 8, 2, 6, 5] 2 terkecil, 4< >2
fase 2 [1, 2, 7, 3, 8, 4, 6, 5] 3 terkecil, 7< >3
fase 3 [1, 2, 3, 7, 8, 4, 6, 5] 4 terkecil, 7< >4
fase 4 [1, 2, 3, 4, 8, 7, 6, 5] 5 terkecil, 8< >5
fase 5 [1, 2, 3, 4, 5, 7, 6, 8] 6 terkecil, 7< >6
fase 6 [1, 2, 3, 4, 5, 6, 7, 8] 7 terkecil, tetap
fase 7 [1, 2, 3, 4, 5, 6, 7, 8]
fase 8 [1, 2, 3, 4, 5, 6, 7, 8]


program C++
#include <iostream>
using namespace std;
void baca_data(int A[], int n)
{ int i;
for (i = 0; i < n; i++)
{ cout << "Data ke-: "<<i+1<<"= ";
cin >> A[i];
}
}
void cetak_data(const int A[], int n)
{ int i;
for (i = 0; i < n; i++)
cout << A[i];
cout << "\n";
}
void tukar (int *a, int *b)
{ int temp;
temp = *a;
*a = *b;
*b = temp;
}
void minimum(int A[], int dari, int n, int * tempat)
{ int i, min;
min = A[dari];
*tempat = dari;
for (i = dari+1; i<n; i++)
if (A[i] < min)
{ min = A[i];
*tempat = i;
}
}

void selection_sort(int A[], int n)
{ int i, t;
for (i = 0; i<n; i++)
{ minimum(A, i, n, &t);
tukar(&A[i], &A[t]);
}
}
main() {
int data[10], n;
cout << "Banyak data : ";
cin >> n;
baca_data(data,n);
cetak_data(data,n);
selection_sort(data,n);
cout<<endl;
cout<<"setelah diurutkan"<<endl;
cetak_data(data,n);
return 0;
}  





https://c96net.blogspot.co.id/2016/05/mengurutkan-deret-bilangan-dengan.html
http://rasidikhan.blogspot.co.id/2016/05/mengurutkan-deret-bilangan-dengan.html

Tidak ada komentar:

Posting Komentar