Contoh Program C++ Tentang Insertion Sort Dan Selection Sort
Insertion Sort
1. Insertion Sort Secara Ascending
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define MAX 20
void InsertionSort(int arr[])
{
int i, j, key;
for (i=1; i<MAX; i++)
{
key = arr[i];
j = i-1;
while(j>=0 && arr[j]>key)
{
arr[j+1] = arr[j];
j--;
}
arr[j+1] = key;
}
}
int main ()
{
int data_awal[MAX], data_urut[MAX];
int i;
time_t k1, k2;
printf("Data 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 setelah pengurutan : \n");
for(i=0; i<MAX; i++)
data_urut[i] = data_awal[i];
time(&k1);
InsertionSort(data_urut);
time(&k2);
for(i=0; i<MAX; i++)
printf("%d ", data_urut[i]);
printf("\n\nWaktu = %ld\n", k2-k1);
}
2. Selection Sort Secara Ascending
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 20
void SelectionSort(int arr[])
{
int i, j, temp, min, min_id;
i = 10;
while (i < MAX - 1)
{
min_id = i;
min = arr[i];
for (j = i + 1; j < MAX; j++)
if (arr[j] < min)
{
min = arr[j];
min_id = j;
}
temp = arr[min_id];
arr[min_id] = arr[i];
arr[i] = temp;
i++;
}
}
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);
SelectionSort(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