#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define MAX 30
#define DELAY 10000000
#define TRUE 1
#define FALSE 0
#define INPUT 'i'
#define OUTPUT 'o'
#define _MY_DEBUG
#if defined(_MY_DEBUG)
#define TRACE_LINE printf("\n\n- Program Statistics :\n1. File : %s\n2. Date : %s\n3. Time : %s\n",__FILE__,__DATE__,__TIME__);
#else
#define TRACE_LINE
#endif
void BubbleSort(int*, int),
Swap(int*, int*),
InputOutput(int*, const int, const char),
Delay(void),
FreeBuffer(int*);
int main(int argc, char *argv[]) {
system("COLOR 5");
int *buffer = NULL, max;
printf("Implementasi Bubble Sort\nMasukkan banyak data [max:30] : ");
scanf("%d",&max);
fflush(stdin);
if((max > FALSE) && (max <= MAX)) {
buffer = (int*)calloc(max,sizeof(int));
InputOutput(buffer,max,INPUT);
printf("\nData yang anda masukkan : ");
InputOutput(buffer,max,OUTPUT);
BubbleSort(buffer,max);
printf("\nData setelah disorting : ");
InputOutput(buffer,max,OUTPUT);
FreeBuffer(buffer);
} TRACE_LINE;
getch();
fflush(stdin);
return(EXIT_SUCCESS);
}
void BubbleSort(int* buffer, int max) {
int i, j;
for(i = 0; i < max; ++i) {
for(j = 0; j < max-i; ++j) {
if(*(buffer+j) > *(buffer+(j+TRUE))) { // if(buffer[j] > buffer[j+TRUE]) {
Swap((buffer+j),(buffer+(j+TRUE))); // Swap(&(*(buffer+j)),&(*(buffer+(j+TRUE))));
}
}
}
}
void Swap(int* buffer1, int* buffer2) {
int tmp = *buffer1;
*buffer1 = *buffer2;
*buffer2 = tmp;
}
void InputOutput(int* buffer, const int max, const char STAT) {
int i;
/* switch(STAT) {
case(INPUT) : {
for(i = 0; i < max; ++i) {
printf("%d. Data ke-%d : ",(i+TRUE),(i+TRUE));
scanf("%d",&buffer[i]);
fflush(stdin);
}
} break;
case(OUTPUT) : {
for(i = 0; i < max; ++i) {
printf("%d ",buffer[i]);
Delay();
}
} break;
default :
break;
} */
if('i' == STAT) {
for(i = 0; i < max; ++i) {
printf("%d. Data ke-%d : ",(i+TRUE),(i+TRUE));
scanf("%d",&buffer[i]);
fflush(stdin);
}
} else if('o' == STAT) {
for(i = 0; i < max; ++i) {
printf("%d ",buffer[i]);
Delay();
}
}
}
void Delay(void) {
int i = FALSE;
while(i < DELAY) {
++i;
}
}
void FreeBuffer(int* buffer) {
free(buffer);
buffer = NULL;
}Tuesday, November 29, 2011
Bubble Sort dalam bahasa C
Subscribe to:
Post Comments (Atom)
:malu:
ReplyDelete