#include <conio.h> #include <fstream> #include <iomanip> using namespace std;
static const char alphanum[] =
"0123456789""abcdefghijklmnopqrstuvwxyz"; int stringLength = sizeof(alphanum) - 1; char genRandom()
{
return alphanum[rand() % stringLength]; }
int main() {
ofstream out_stream; std::string Str; srand(time(0));
double start=clock();
for(unsigned long i = 0; i<600; ++i)// generate data {
Str += genRandom(); }
out_stream.open("data.txt");
for (int i=0; i<600; i++)// memanggil data yg digenerate tersebut {
out_stream << Str[i];
if(i % 6==5) out_stream<<endl; }
double stop=clock(); out_stream.close();
cout<<setiosflags(ios::fixed); cout<<setprecision(6);
cout<<"Waktu eksekusi program: " <<(stop-start); cout<<" milidetik ";
// C++ program for quicksort #include <iomanip>
using namespace std;
void quick_sort(string arr[], int left, int right) {
int i = left, j = right;
string tmp; string pivot = arr[(left+right)/2];/* partition */ while (i<j)
{
while (arr[i] < pivot) i++;
while (arr[j] > pivot) j--;
if (i<=j) {
quick_sort(arr, left, j); if (i < right)
quick_sort(arr, i, right); }
void qs(char *items, int left, int right) {
while((items[i] < x) && (i < right)) i++;
while((x < items[j]) && (j > left)) j--;
if(i <= j) {
y = items[i];
items[i] = items[j]; items[j] = y;
}
int main() {
vector<string> data; string tempp;
char temppp[6]; int n=0;
ifstream ambil; ofstream out_stream;
srand(time(0));// running time double start=clock();
out_stream.open("hasil_quick.txt"); ambil.open("data.txt");
while(!ambil.eof()) //ambil data ke array {
getline(ambil, tempp);
strcpy(temppp,tempp.c_str()); data.push_back (temppp); }
ambil.close();
string dataa[data.size()];
for(vector<string>::iterator it = data.begin() ; it != data.end(); ++it)
{
dataa[n] = *it; n++;
}
for (unsigned long i=0;i<n-1;i++) {
out_stream << dataa[i] << endl; }
quick_sort(dataa,0,n-2);
double stop=clock(); // running time out_stream.close();
cout<<setiosflags(ios::fixed); cout<<setprecision(6);
cout<<"Waktu eksekusi program: " <<(stop-start); cout<<" milidetik ";
// C++ program for 3-way quicksort #include<iostream>
#include<fstream> #include<conio.h> #include<vector> #include <iomanip> #include<string>
using namespace std;
void partition(string a[], int l, int r, int &i, int &j) {
i = l-1, j = r; int p = l-1, q = r; string v = a[r]; while (true) {
swap(a[i], a[j]); if (a[i] == v)
{
p++;
swap(a[p], a[i]); }
if (a[j] == v) {
q--;
swap(a[j], a[q]); }
}
swap(a[i], a[r]); j = i-1;
int k=l; while (k < p)
{
swap(a[k], a[j]); j--;
swap(a[i], a[k]); int k=r-1;
i++; k--; }
partition(a, l, r, i, j);
// Recursion
quicksort(a, l, j); quicksort(a, i, r); }
int main() {
vector<string> data; string tempp;
char temppp[6]; int n=0;
ifstream ambil; ofstream out_stream;
srand(time(0));// running time double start=clock();
out_stream.open("hasil_3wayquick.txt"); ambil.open("data.txt");
while(!ambil.eof()) //ambil data ke array {
getline(ambil, tempp);
strcpy(temppp,tempp.c_str()); data.push_back (temppp); }
ambil.close();
string a[data.size()];
for(vector<string>::iterator it = data.begin() ; it != data.end(); ++it)
{
a[n] = *it; n++;
}
int size = sizeof(a) / sizeof(int); for (unsigned long i=1;i<n;i++) {
out_stream << a[i] << endl; }
quicksort(a,0,size-1);
double stop=clock(); // running time out_stream.close();
cout<<setiosflags(ios::fixed); cout<<setprecision(6);
cout<<"Waktu eksekusi program: " <<(stop-start); cout<<" milidetik ";
// C++ program for radixsort #define SHOWPASS
using namespace std;
void print(string kata, int n) {
int i;
for (i = 0; i < n; i++) cout<<"%c\t", kata[i]; }
string radixsort(string kata, int n) {
bucket[kata[i] / exp % 10]++; for (i = 1; i < 10; i++) bucket[i] += bucket[i - 1]; for (i = n - 1; i >= 0; i--)
b[--bucket[kata[i] / exp % 10]] = kata[i]; for (i = 0; i < n; i++)
kata[i] = b[i]; exp *= 10; }
return kata; }
int main() {
vector<string> data; int i=0;
string n;
ifstream ambil; ofstream out_stream;
srand(time(0));// running time double start=clock();
out_stream.open("hasil_radix.txt"); ambil.open("data.txt");
while(!ambil.eof()) {
dataa[i] = *it; i++;
}
for (unsigned long j=0;j<i;j++) {
out_stream << dataa[j] << endl; }
double stop=clock(); // running time out_stream.close();
cout<<setiosflags(ios::fixed); cout<<setprecision(6);
cout<<"Waktu eksekusi program: " <<(stop-start); cout<<" milidetik ";