METODE SORTING
Dibawah ini beberapa jenis - jenis metode sorting yang dapat kalian ketahui.
- Bubble Sort
- Selection Sort
- Insertion Sort
- Quick Sort
- Merge Sort
- Heap Sort
- Binary Sort
Tetapi, kita hanya akan membahas 3 jenis metode sorting saja, yaitu bubble sort, selectionsort, dan insertion sort. Karena ketiga jenis ini adalah yang paling umum digunakan.
Metode Bubble Sort
Metode ini terinspirasi dari gelembung air, jadi metode ini dinamakan bubble sort. Cara kerjanya seperti di atas, dimana data pertama dan kedua akan dibandingkan terlebih dahulu. Apabila dari kedua lebih besar maka, tidak terjadi pergeseran dan akan dilanjutkan dengan perbandingan data ketiga dan selanjutnya. Apabila data yang dibandingkan lebih kecil dari data yang berada disampingnya. Maka data terkecil hasil perbandingan akan digeser pada sisi kiri dan perbandingan akan terus berlanjut.
source code :
#include <iostream>
#include <conio.h>
using namespace std;
void prosesPerpindahan(int data[],int y){
int x;
for(x=0;x<y;x++){
cout<<data[x]<<" ";
}
cout<<endl;
}
void prosesSorting(int data[],int y){
int proses,x,tampung;
for(proses=1;proses<y;proses++){
for(x=0;x<y-proses;x++){
if(data[x]>data[x+1]){
tampung=data[x];
data[x]=data[x+1];
data[x+1]=tampung;
}
}
cout<<"Tahap Ke-"<<proses<<" : ";
prosesPerpindahan(data,y);
}
}
int main(){
int data[]={6,10,15,12,11};
int x;
const int jumlahdata=5;
prosesSorting(data,jumlahdata);
cout<<endl;
cout<<"Setelah Di Urutkan : "<<endl;
prosesPerpindahan(data,jumlahdata);
}
Kalau untuk metode selection sort ini, berbeda dengan bubble sort. Perbedaannya terletak pada dimana data terbesar berhenti. Metode selection sort, data 1 pertama akan di bandingkan dengan data kedua, apabila data tersebut bernilai lebih besar di banding data pertama. Maka, data tersebut akan bergeser dan akan berhenti hingga data n+1 lebih besar dari data tersebut.
source code :
#include <iostream>
using namespace std;
int main()
{
int data[]={3,20,2,12,11};
int n=5,i,j,x,posisi,tampung;
cout<<"Sebelum Di Urutkan : ";
for (int i=0; i<n; i++){
cout<<data[i]<<" ";
}
cout<<endl;
cout<<endl;
for (int i=0;i<n-1;++i){
posisi=i;
for (int j=i+1;j<n;++j){
if (data[j]<data[posisi]){
posisi=j;
}
}
if (posisi!=i){
tampung=data[posisi];
data[posisi]=data[i];
data[i]=tampung;
}
cout<<"Tahap Ke-"<<i+1<<" : ";
for (int x=0;x<n;++x){
cout<<data[x]<<" ";
}
cout<<endl;
}
cout<<endl;
cout<<"Setelah Di Urutkan Menggunakan Metode Selection Sort : ";
for(int i=0;i<n;++i){
cout<<data[i]<<" ";
}
cout << endl;
}
Metode Insertion Sort
source code :
#include <iostream>
using namespace std;
int x[]={3,4,6,5,2};
int i;
int a;
int j= sizeof(x)/sizeof(*x);
int temp, pos;
int b,c;
main ()
{
for(a=0;a<j; a++){
cout << x[a] << "";
}
cout << ""<< endl;
for (a=0; a < j; a++){
temp = x[a];
pos =a;
for(b=a; b < j; b++){
if(x[b] < temp){
temp=x[b];
pos=b;
}
}
x[pos] = x[a];
x[a] = temp;
cout << "" << endl;
cout << a << " : " ;
for(c=0; c < j; c++){
cout << x[c] << " ";
}
}
cout << " " << endl;
}
Komentar
Posting Komentar