TUGAS KE III
DISUSUN OLEH :
1. Selection Sort
Pengurutan dilakukan dengan memilih elemen terbesar dan menempatkan pada posisinya,
kemudian mencari element terbesar berikutnya dan menempatkan pada tempatnya, dan
seterusnya.
Proses pengurutan dengan menggunakan metode selection sort secara terurut naik adalah :
1. Mencari data terkecil dari data pertama sampai data terakhir, kemunian di tukar posisinya
dengan data pertama.
2. mencari data terkecil dari data kedua sampai data terakhir, kemudian di tukar dengan
posisinya dengan data kedua.
3. mencari data terkecil dari data ketiga sampai data terakhir, kemudian di tukar posisinya
dengan data ketiga
4. dan seterusnya sampai semua data turut naik. apabila terdapat n buah data yang akan di
urutkan, maka membutukan (n - 1) langkah pengurutan, dimana data terakhir yaitu data ke-n
tidak perlu di urutkan karena hanya tinggal satu satunya.
#include <iostream>
#include <conio.h>
using namespace std;
main()
{
int nilai[20];
int n,i,j,x,pos,tampung;
cout<<"Masukan banyak inputan : "<<endl;
cin>>n;
cout<<"======================="<<endl;
for (int i=0; i<n; i++)
{
cout<<"Nilai ke "<<(i+1)<<" : ";
cin>>nilai[i];
}
cout<<endl;
cout<<"Sebelum Sorting"<<endl;
cout<<"====================="<<endl;
for (int i=0; i<n; i++)
{
cout<<nilai[i]<<endl;
}
cout<<endl;
}
cout<<endl;
}
getch();
}
Data dicek satu per satu mulai dari yang kedua sampai dengan yang terakhir. Apabila
ditemukan data yang lebih kecil daripada data sebelumnya, maka data tersebut disisipkan
pada posisi yang sesuai. Akan lebih mudah apabila membayangkan pengurutan kartu.
Pertama-tama anda meletakkan kartu-kartu tersebut di atas meja, kemudian melihatnya
dari kiri ke kanan. Apabila kartu di sebelah kanan lebih kecil daripada kartu di sebelahkiri,
maka ambil kartu tersebut dan sisipkan di tempat yang sesuai.
Berikut adalah implementasi insertion sort dalam C++:
#include<iostream>
#include<conio.h>
using namespace std;
main()
{
int x,a[100],i,t,j,k;
#include <iostream>
using namespace std;
int main()
{
int n, i;
cout<<"\nEnter the number of data element to be sorted:
";
cin>>n;
int arr[n];
for(i = 0; i < n; i++)
{
cout<<"Enter element "<<i+1<<": ";
cin>>arr[i];
}
MergeSort(arr, 0, n-1);
return 0;
}
4. Quick Sort
Algoritma sortir yang efisien yang ditulis oleh C.A.R. Hoare pada 1962. Dasar strateginya
adalah “memecah dan menguasai”. Quicksort dimulai dengan menscan daftar yang disortir
untuk nilai median. Nilai ini, yang disebut tumpuan (pivot), kemudian dipindahkan ke satu sisi
pada daftar dan butir-butir yang nilainya lebih besar dari tumpuan di pindahkan ke sisi lain.
Berikut adalah implementasi quick sort dalam C++:
#include <iostream>
#include <conio.h>
#define max 20
using namespace std ;
if (lb>=ub)
return;
a=darr[lb];
//1. Tentukan Lower Bound (Batas Bawah) & Upper Bound
(Batas Atas)
atas=ub;
bawah=lb;
ub=n;
cout<<"Masukkan data: \n\n";
for(i=1;i<=n;i++)
{
cout<<"data ke -> "<<i<<" : "; cin>>arr[i];
}
quick_sort(arr,lb,ub);
cout<<"\nHasil pengurutan data: ";
for(i=0; i<n;i++)
cout<<" "<<arr[i];
getch();
}