Nama Kelompok :
Sulistyo
Zuhairini Azzahra
Almira Mutiara
Sharah Annisa
PRODI MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS NEGERI JAKARTA
201
BUBBLE SORT
#include <cstdlib>
#include <iostream>
using namespace std;
void print_array(int array[], int size) {
cout<< " bubble sort steps: ";
int j;
for (j=0; j<size; j++)
cout <<" "<< array[j];
cout << endl;
}//end of print_array
void bubble_sort(int arr[], int size) {
bool not_sorted = true;
int j=1,tmp;
while (not_sorted) {
not_sorted = false;
j++;
for (int i = 0; i < size ; i++) {
if (arr[i] > arr[i + 1]) {
tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
not_sorted = true;
}//end of if
print_array(arr,size);
}//end of for loop
return 0;
}//end of main
QUICK SORT
#include <iostream>
#include <iomanip>
#define size 10
left = left_index;
right = right_index;
// pivot selection
pivot = a[(left_index + right_index) /2];
// partition
while(left <= right) {
while(a[left] < pivot) left++;
while(a[right] > pivot) right--;
if(left <= right) {
swap(a,left,right);
left++; right--;
}
print(a);
}
// recursion
qsort(a,left_index,right);
qsort(a,left,right_index);
}
int main() {
int n,a[100],i,j;
printf("------------------- QUICK SORT ----------------- \n\n");
qsort(a,0,size-1);
printf("\n\n Data yang setelah diurutkan :");
print(a);
cout <<
"\n--------------------------------------------------------------------------------" ;
system("pause");
}
INSERTION SORT
#include <cstdlib>
#include <iostream>
#include <windows.h>
using namespace std;
//member function
{
int i, j ,tmp;
for (i = 1; i < length; i++) {
j = i;
while (j > 0 && arr[j - 1] > arr[j]) {
tmp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = tmp;
j--;
}//end of while loop
print_array(arr,length);
}//end of for loop
}//end of insertion_sort.
void print_array(int array[], int size)
{
cout<< "\nsorting: ";
int j;
for (j=0; j<size;j++)
for (j=0; j<size;j++)
cout <<" "<< array[j];
cout << endl;
}//end of print_array
IN PLACE SORT
#include <iostream>
int tmp;
tmp = *m;
*m = *n;
*n = tmp;
}
int main() {
int a[20],sz,i,j,mn;
printf("------------------- IN PLACE SORT ------------------\n\n");
cout <<
"\n--------------------------------------------------------------------------------" ;
system("pause");
return 0;
}
HEAP SORT
#include <iostream>
#include<iomanip>
#include <conio.h>
{
int j, tmp;
tmp = a[i];
j =2*i;
while(j <= n)
{
if(j < n && a[j+1]> a[j])
j = j+1;
if(tmp > a[j])
break;
else if(tmp <= a[j])
{
a[j/2]= a[j];
j =2*j;
}
}
a[j/2]= tmp;
return;
}
void heapsort(int*a, int n)
{
int i, tmp;
for(i = n; i >=2; i--)
{
tmp = a[i];
a[i]= a[1];
a[1]= tmp;
max_heapsort(a, 1, i-1);
cout << "\n\n Heap sort step : "<<"["<<((i-n)*(-1))
+1<<"]"
<<": ";
for(int r=1;r<=n;r++)
cout<<a[r]<< " ";
}
}
void max_heapsort(int*a, int n)
{
int i;
for(i = n/2; i >=1; i--)
{
max_heapsort(a, i, n);
}
}
int main()
{
int a[20],n;
cout<<"--------------- Heap Sort --------------\n\n";
}
cout<<"\n\n Langkah-langkah Heap Sort : ";
cout<<"\n-----------------------------";
max_heapsort(a,n);
heapsort(a,n);
cout<<"\n";
}
_getch();
return 0;
}
RADIX SORT
#include <stdio.h>
#include <iostream.h>
#define MAX 100
#define SHOWPASS
#define BASE 10
void print(int *a, int n)
{
int i;
for (i = 0; i < n; i++)
printf("%d\t", a[i]);
exp *= BASE;
#ifdef SHOWPASS
printf("\nPASS
: ");
print(a, n);
#endif
}
}
int main()
{
int i, n,arr[MAX];
printf("------------------- Radix Sort ------------------ \n\n");
cout<<"\nMasukan jumlah data : ";
cin>>n;
n = n < MAX ? n : MAX;
for(i=0;i<n;i++)
{
cout<<"\nMasukan data ke : ["<<i<<"]: ";cin>>arr[i];
}
cout<<"\n\nData yang sebelum diurutkan : ";
for(i=0;i<=n-1;i++)
{
cout<<" "<<arr[i];
}
cout<<endl;
radixsort(&arr[0], n);
printf("\nSORTED : ");
print(&arr[0], n);
printf("\n");