• Tidak ada hasil yang ditemukan

Analisis Perbandingan Algoritma QuickSort, 3 Way QuickSort, dan RadixSort

N/A
N/A
Protected

Academic year: 2017

Membagikan "Analisis Perbandingan Algoritma QuickSort, 3 Way QuickSort, dan RadixSort"

Copied!
8
0
0

Teks penuh

(1)

#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 ";

(2)

// 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;

(3)

}

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 ";

(4)

// 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--; }

(5)

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 ";

(6)

// 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()) {

(7)

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 ";

(8)

DATA PRIBADI

Nama Lengkap

: Ploren Peronica Pasaribu

Tempat dan Tanggal Lahir

: Medan, 28 Februari 1993

Alamat Rumah

: Jl. Jermal 7 Komplek Fadillah No. 8 Medan

Jenis Kelamin

: Perempuan

Agama

: Kristen Protestan

Status

: Belum kawin

No. Telepon Rumah/HP

: 085372214628

E-mail

: [email protected]

RIWAYAT PENDIDIKAN FORMAL

1998

2004

: SD NEGERI 104237 TANJUNG MORAWA

2004

2007

: SMP NEGERI 1 TANJUNG MORAWA

2007

2010

: SMA NEGERI 1 LUBUKPAKAM

2010

2013

: D3 Teknik Informatika Universitas Sumatera Utara

SEMINAR

Peserta Seminar Nasional Literasi Informasi 2014 Universitas Sumatera Utara

PENGALAMAN KERJA

2012

: Magang di PT. PLN (Persero) WILAYAH SUMUT

AREA Medan

Referensi

Dokumen terkait

Nama : Rindang Bangun Prasetyo Tempat Tanggal Lahir : Magelang, 10 Februari 1980.. Alamat Rumah : Perumahan Zebra Indah Blok

Nama Lengkap : Suryana Dwika Yudha Tempat Tanggal Lahir : Cirebon, 16 Maret 1993.. Pendidikan terakhir : S1 Fakultas Keguruan Ilmu Pendidikan Bahasa Inggris Unswagati Alamat

Tempat/Tgl Lahir : Medan / 17 Februari 1993 Jenis Kelamin : Perempuan.. Agama :

Tempat, Tanggal Lahir : Kotapinang, 17 Desember 1991. Alamat

Tempat/Tanggal Lahir: Medan, 03 September 1992 Jenis Kelamin: Laki-Laki. Warga Negara: Indonesia

Tempat/Tanggal Lahir : Medan, 30 September 1991. AlamatSekarang

Nama : Roni Anggara Sipahutar Jenis Kelamin : Laki-laki. Tempat,Tanggal Lahir : Medan, 14 September 1993 Kewarganegaraan :

Nama : Elsya Sabrina Asmita Simorangkir. Alamat Rumah