You are on page 1of 6

PRAKTIKUM 2 SORTING (PENGURUTAN)

LAPORAN
Ditulis untuk memenuhi mata kuliah
Praktikum Algoritma dan Struktur Data
yang dibimbing oleh I Made Wirawan, S.T., S.S.T.

Oleh
Fitri Kushandayani (209533425548)
PTI Input’09

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PROGRAM STUDI S1 PENDIDIKAN TEKNIK INFORMATIKA
FEBRUARI 2011
Tugas Praktikum (Tugas Rumah)

1. Contoh skrip dan program shorting data

BUBBLE SHORT

void bubble_sort()
{
int i, j;
for(int i=1;i<8;i++)
{
for(j=7;j>=i;j--)
{
if(data[j]<data[j-1])
tukar(j,j-1);
}
}
printf("\nData : \n");
for(i=0;i<8;i++)
{
printf("%i ",data[i]);
}
}

SELECTION SHORT
void selection_sort()
{
int ss,i,j;
for(i=0;i<7;i++)
{
ss = i;
for(j = i+1;j<8;j++)
{
if(data[j] < data[ss])
ss = j;
}
if(ss != i) tukar(ss,i);
}
printf("\nData : \n");
for(i=0;i<8;i++)
{
printf("%i ",data[i]);
}
}
INSERTION SORT
void insertion_sort()
{
int temp,i,j;
for(i=1;i<8;i++)
{
temp = data[i];
j = i -1;
while(data[j]>temp && j>=0)
{
data[j+1] = data[j];
j--;
}
data[j+1] = temp;
}
printf("\nData : \n");
for(i=0;i<8;i++)
{
printf("%i ",data[i]);
}
printf("\n\n");
}

SHELL SHORT
void shell_sort()
{
int length = 8;
int i,d;
int tmp, flag;

d=length;
flag=1;
while (flag || (d>1))
{
flag = 0;
d=(d+1)/2;
for (i=0; i<(length-d); i++)
{
if (data[i+d] < data[i])
{
tmp = data [i+d];
data[i+d] = data[i];
data[i] = tmp;
flag = 1;
}
}
}
printf("\nData : \n");
for(i=0;i<8;i++)
{
printf("%i ",data[i]);
}
printf("\n\n");
}

QUICK SHORT
void q_sort (int numbers[], int left, int right)
{
int pivot, l_hold, r_hold;

l_hold=left;
r_hold=right;
pivot = numbers[left];
while (left<right)
{
while ((numbers[right] >=pivot) && (left < right))
right--;
if (left != right)
{
numbers[left] = numbers[right];
left++;
}
while ((numbers[left] <= pivot) && (left < right))
left++;
if (left != right)
{
numbers[right] = numbers[left];
right--;
}
}
numbers[left] = pivot;
pivot = left;
left = l_hold;
right = r_hold;
if (left < pivot)
q_sort(numbers, left, pivot-1);
if (right > pivot)
q_sort(numbers, pivot +1,right);
}

QUICK SHORT
void quick_sort (int numbers[], int array_size)
{
q_sort (numbers, 0, array_size - 1);

printf("\nData : \n");
for(int i=0;i<8;i++)
{
printf("%i ",data[i]);
}
printf("\n\n");

RADIX SHORT
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>

void radix (int byte, long N, long *source, long *dest)


{
long count[256];
long index[256];
memset (count, 0, sizeof (count));
for (int i=0; i<N; i++) count [(source[i]>>(byte*8))&0xff]++;

index[0]=0;
for (int i=1; i<256; i++) index[i]=index[i-1]+count[i-1];
for (int i=0; i<N; i++) dest[index[((source[i])>>(byte*8))&0xff]++] = source[i];
}

void radixsort (long *source, long *temp, long N)


{
radix (0, N, source, temp);
radix (1, N, temp, source);
radix (2, N, source, temp);
radix (3, N, temp, source);
}

void make_random (long *data, long N)


{
for (int i=0; i<N; i++) data[i]=rand()|(rand()<<16);
}

long data[100];
long temp[100];

void main (void)


{
make_random (data, 100);
radixsort (data, temp, 100);
for (int i=0; i<100; i++)
cout<<data[i]<<"\n";
getch();
}
2.

You might also like