#selection sort
halo guys,, apa kabarr ni ??/,, gimana masih terus coding meskipun banyak tugas, dan selalau dalam tekanan tugas hahahaha,,, tenang tenang kita masih terus berjuang ya meskipun banyak halangan dan rintangan serta pengorbanan yang harus kita hadapii,,,,
kali ini mimin akan berbagi program sorting pada C++
SORTINGapa itu sorting ?
Sorting merupakan suatu proses untuk menyusun kembali humpunan obyek menggunakan aturan tertentu. Sorting disebut juga sebagai suatu algoritma untuk meletakkan kumpulan elemen data kedalam urutan tertentu berdasarkan satu atau beberapa kunci dalam tiap-tiap elemen. Pada dasarnya ada dua macam urutan yang biasa digunakan dalam suatu proses sorting:
1. Urut naik (ascending)
Mengurutkan dari data yang mempunyai nilai paling kecil sampai paling besar
Mengurutkan dari data yang mempunyai nilai paling kecil sampai paling besar
2. Urut turun (descending)
Mengurutkan dari data yang mempunyai nilai paling besar sampai paling kecil.
Mengapa harus melakukan sorting data? Ada banyak alasan dan keuntungan
dengan mengurutkan data. Data yang terurut mudah untuk
dicari, mudah untuk diperiksa, dan mudah untuk dibetulkan jika
terdapat kesalahan. Data yang terurut dengan baik juga mudah untuk
dihapus jika sewaktu-waktu data tersebut tidak diperlukan lagi. Selain
itu, dengan mengurutkan data maka kita semakin mudah untuk menyisipkan
data atapun melakukan penggabungan data.
Metode-metode sorting meliputi:
1. Insertion Sort (Metode Penyisipan)
2. Selection Sort (Metode Seleksi)
3. Bubble sort(Metode Gelembung)
4. Shell Sort (Metode Shell)
5. Quick Sort (Metode Quick)
6. Merge Sort (Metode Penggabungan)
Analisis kasus :
terus bagaimana langkah-langkah nya :2. Selection Sort (Metode Seleksi)
3. Bubble sort(Metode Gelembung)
4. Shell Sort (Metode Shell)
5. Quick Sort (Metode Quick)
6. Merge Sort (Metode Penggabungan)
Analisis kasus :
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 :
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]
bagai mana algoritmanaya :
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++ than output A[i]
}
Procedure minimum(int
A[], int dari, int n, int * tempat){
min ß A[dari]
*tempat ß dari
for i ßdari+1, i<n; i++ than do if A[i] < min
min ß A[i]
*tempat ß i
}
Procedure
selection_sort(int A[], int n)
{
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])
,,,,,, langsung aja ya ,, kita simak ke codinganya......
#include <iostream>
#include <string>
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);
cetak_data(data,n);
return 0;
}
ada juga flowchart nya meskipun berbeda dengan c++,,, semoga bsa jadi refrensi
EmoticonEmoticon