Sorting dengan metode Selection Sort

No Comments
1) Identifikasi masalah
=>Menukar 6 bilangan yang masih acak dengan metode selection.

Data Awal [ 9,8,7,6,5,4 ]
Step 1        [ 4,8,7,6,5,9 ]  4 terkecil, 9 <--> 4
Step 2        [ 4,5,7,6,8,9 ]  5 terkecil, 8 <--> 5
Step 3        [ 4,5,6,7,8,9 ]  6 terkecil, 7 <--> 6
Step 4        [ 4,5,7,6,8,9 ]  sudah terurut,maka akan berhenti saat data sudah terurut
Step 5        [ 4,5,7,6,8,9 ]  Selesai

1. Temukan nilai yang paling minimum di dalam struktur data.
2. Tukar nilai tersebut dengan nilai pada posisi pertama di bagian struktur data yang  belum diurutkan( letak sebelah kiri lebih kecil daripada sebelah kanan).
3. Ulangi langkah di atas untuk bagian struktur data yang tersisa sampai terurut.


2) Menentukan input dan output
- Input : i , A , temp , min, t,
- Output : tukar(&A[i], &A[t])

3) Flowchart







4) Test menggunakan data
- input = 9,8,7,6,5,4

- output = 4,5,6,7,8,9

5) Implementasi 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<<"Desita Putri Niranda\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;
}

6) Eksekusi




Bubble Sort => Khoiriyatus S
Insertion Sort => Rahmasari Adi P.I



-Semoga Bermanfaat-
~Thank You~
XOXO


Next PostPosting Lebih Baru Previous PostPosting Lama Beranda

0 komentar

Posting Komentar