
1. Bubble sort secara ascending
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 20
void BubbleSort(int arr[])
{
int i, j, temp;
for (i = 0; i < MAX - 1; i++)
{
for (j = 0; j < MAX - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
}
int main()
{
int data_awal[MAX], data_urut[MAX];
int i;
time_t k1, k2;
printf("Sebelum pengurutan : \n");
for (i = 0; i < MAX; i++)
{
srand(time(NULL) * (i + 1));
data_awal[i] = rand() % 100 + 1;
printf("%d ", data_awal[i]);
}
printf("\n\nSetelah pengurutan : \n");
for (i = 0; i < MAX; i++)
data_urut[i] = data_awal[i];
time(&k1);
BubbleSort(data_urut);
time(&k2);
for (i = 0; i < MAX; i++)
printf("%d ", data_urut[i]);
printf("\n\nWaktu = %ld\n", k2 - k1);
}
2. Shell sort secara ascending#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdbool.h>
#define MAX 20
void ShellSort(int arr[])
{
int i, jarak, temp;
bool did_swap = true;
jarak = MAX;
while (jarak > 1)
{
jarak = jarak / 2;
did_swap = true;
while (did_swap)
{
did_swap = false;
i = 0;
while (i < (MAX - jarak))
{
if (arr[i] < arr[i + jarak])
{
temp = arr[i];
arr[i] = arr[i + jarak];
arr[i + jarak] = temp;
did_swap = true;
}
i++;
}
}
}
}
int main()
{
int data_awal[MAX], data_urut[MAX];
int i;
time_t k1, k2;
printf("-------------------------------------------------------------------\n");
printf("Program Shell Sort Secara Descending\n");
printf("-------------------------------------------------------------------\n\n");
printf("Data Kamu Sebelum pengurutan : \n");
for(i=0; i<MAX; i++){
srand(time(NULL) * (i + 1));
data_awal[i] = rand() % 100 + 1;
printf("%d ", data_awal[i]);
}
printf("\n\nData Kamu Setelah pengurutan : \n");
for(i=0; i<MAX; i++)
data_urut[i] = data_awal[i];
time(&k1);
ShellSort(data_urut);
time(&k2);
for(i=0; i<MAX; i++)
printf("%d ", data_urut[i]);
printf("\n\nWaktu = %ld\n", k2-k1);
}
0 comments:
Posting Komentar