- permasalahan
mengurutkan data acak menggunakan metode selection sort
misalakan :
data awal (input) :[8, 4, 7, 3, 1, 2, 6, 5]
outputnya :[1,2,3,4,5,6,7,8]
- langkah penyelesaian nya
kita menentukan n atau banyak data yang akan kita proses nanti
-kedua
program akan membaca dan kita akan memasukan angka sesuai n
-ketiga
lalu data-data yang telah di input akan di cetak
-empat
program akan di seleksi dan menentukan nilai terkcil sampai terbesar
-lima
setelah nilai minimum di temukan program akan mengurutkan data dari kiri kanan dan dari kecil ke besar.
kira-kira seperti ini:
Data awal : [8, 4, 7, 3, 1, 2, 6, 5] 1 terkecil, 81
fase 1 [1, 4, 7, 3, 8, 2, 6, 5] 2 terkecil, 42
fase 2 [1, 2, 7, 3, 8, 4, 6, 5] 3 terkecil, 73
fase 3 [1, 2, 3, 7, 8, 4, 6, 5] 4 terkecil, 74
fase 4 [1, 2, 3, 4, 8, 7, 6, 5] 5 terkecil, 85
fase 5 [1, 2, 3, 4, 5, 7, 6, 8] 6 terkecil, 76
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]
- procedure selection
Procedure selection_sort(output A : larik; input n : integer)
Deklarasi
i, t : integer
Deskripsi
for i 1 to n do
minimum(A, i, n, t);
tukar(A[i], A[t]); {tukar tempat elemen saat ini j dengan elemen terkecil yang ditemukan t}
endfor
raptor:
#include <iostream.h>
void baca_data(int A[], int n)
{ int i;
for (i = 0; i < n; i++)
{ cout << "Data ke-%d : ",i+1);
cin >> A[i]);
}
}
void cetak_data(const int A[], int n)
{ int i;
for (i = 0; i < n; i++)
cout << "%d ",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);
cetak_data(data,n);
return 0;
}
outputnya dari program di atas adalah sebagai berikut:
Deklarasi
i, t : integer
Deskripsi
for i 1 to n do
minimum(A, i, n, t);
tukar(A[i], A[t]); {tukar tempat elemen saat ini j dengan elemen terkecil yang ditemukan t}
endfor
raptor:
- program c++:
#include <iostream.h>
void baca_data(int A[], int n)
{ int i;
for (i = 0; i < n; i++)
{ cout << "Data ke-%d : ",i+1);
cin >> A[i]);
}
}
void cetak_data(const int A[], int n)
{ int i;
for (i = 0; i < n; i++)
cout << "%d ",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);
cetak_data(data,n);
return 0;
}
outputnya dari program di atas adalah sebagai berikut:
bubble sort :http://ariesmunan.blogspot.co.id/2016/05/bubble-sort.html
insertion sort : http://maulana277.blogspot.co.id/




0 ulasan