#include
int data[50];
int banyak;
void tampil() {
int i;
for(i=0; i < banyak; i++)
cout << data[i] << " ";
cout << "\n";
}
void insertionSort() {
int i, k;
int x;
int ketemu;
for(k=1; k < banyak; k++) {
x = data[k];
i=k-1;
ketemu = 0;
while((i >=0) && (!ketemu)) {
if(x < data[i]) {
data[i+1]=data[i];
i=i-1;
} else {
ketemu=1;
data[i+1]=x;
}
}
}
}
void selectionSort() {
int posMin, posAwal, j, temp;
for (posAwal = 0; posAwal < banyak-1; posAwal++) {
posMin = posAwal;
for (j = posAwal + 1; j < banyak; j++)
if (data[posMin] > data[j])
posMin = j;
temp = data[posAwal];
data[posAwal] = data[posMin];
data[posMin] = temp;
}
}
void bubbleSort() {
int tahap, j, temp;
int ada_penukaran;
tahap =1;
ada_penukaran =1;
while (tahap
for (j=0;j
ada_penukaran = 1;
temp=data[j];
data[j]=data[j+1];
data[j+1]=temp;
}
tahap++;
}
}
int partisi(int p, int r) {
int x, i, j, tmp, set=100;
x=data[p];
i=p;
j=r;
while(set) {
set--;
while(data[j] > x)
j=j-1;
while(data[i] < x)
i=i+1;
if(i
data[i]=data[j];
data[j]=tmp;
} else
return j;
}
}
void quickSort(int p=0, int r=banyak-1) {
int q;
if(p
quickSort(p, q);
quickSort(q+1, r);
}
}
void pilih(int input) {
switch (input) {
case 1:
insertionSort();
tampil();
break;
case 2:
selectionSort();
tampil();
break;
case 3:
bubbleSort();
tampil();
break;
case 4:
quickSort();
tampil();
break;
default:
cout << "Anda membatalkan misi penyortingan...";
break;
}
}
int main() {
int input;
do {
clrscr();
cout << "S O R T I N G M E T H O D S" << endl << endl;
cout << "Masukkan banyaknya data : "; cin >> banyak;
cout << "Masukkan data : " << endl;
for(int i=0; i < banyak; i++) {
cout << "Data ke -" << (i+1) << " = "; cin >> data[i];
}
cout << "Hasil Sorting" << endl;
clrscr();
cout << "==================\n";
cout << "MENU SORTING\n";
cout << "------------------\n";
cout << "PILIHAN\n";
cout << "1. INSERTION SORT\n";
cout << "2. SELECTION SORT\n";
cout << "3. BUUBLE SORT\n";
cout << "4. QUICK SORT\n";
cout << "5. EXIT\n";
cout << "------------------\n";
cout << "Pilihan = "; cin >> input;
pilih(input);
getch();
} while (input!=5);
return 0;
}

Tidak ada komentar:
Posting Komentar