sorting C++

#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++

 SORTING
apa 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

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 :

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]

 terus bagaimana langkah-langkah nya :

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