-->

I'M Bayu Pradika

Graphic Designer . Web Developer . Programmer

Rabu, 07 September 2022

Contoh Program Tentang Bubble Sort dan Shell sort

 


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





Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna Veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

0 comments:

Categories

Contact Us

BAYU
+62 896-2690-9619
Kampar, Riau, Indonesia