Code Program Insertion
-----------------------------------------------------------------------------------------------------------------------------#include"stdio.h"
#include"time.h"
#define max 100000
int key,n,data[max],temp[max];
void input(){
int i;
printf("\nmasukan jumlah data: ");
scanf("%d",&n);
for(i=0;i<n;i++){
//data[i]=rand()%100000;
//printf("data ke %d= ",i+1);
//scanf("%d",&data[i]);
data[i]=i; //untuk data urut
}
for(i=0;i<n;i++){
temp[i]=data[i];
}
}
void print(){
int k;
puts("\n hasil setelah diurutkan\n");
for(k=0;k<n;k++){
printf("%d ",data[k]);}
}
void printtemp(){
int k;
puts("\n hasil setelah diurutkan\n");
for(k=0;k<n;k++){
printf("%d ",temp[k]);}
}
void insertion(){
int i,j;char pil;long int t1,t2;
printf("\t MENU \n");
printf("urutkan \n 1.ascending\n 2.descending\n");
fflush(stdin);
printf("\n masukan pilihan anda: ");
pil=getchar();
//urut asscending
if(pil=='1'){
time(&t1);
for(i=1;i<n;i++){
j=i;
key=data[i];//untuk tampung data dulu
while((j>0)&&(data[j-1]>key)){
data[j]=data[j-1];//untuk geser tempat
j--;
}
data[j]=key;
}
time(&t2);
//print();
printf("\nwaktu= %ld s",t2-t1);
}
//urut desscending
else if(pil=='2'){
time(&t1);
for(i=1;i<n;i++){
j=i;
key=temp[i];//untuk tampung data dulu
while((j>0)&&(temp[j-1]<key)){
temp[j]=temp[j-1];//untuk geser tempat
j--;
}
temp[j]=key;
}
time(&t2);
printtemp();
printf("\nwaktu= %ld s",t2-t1);
}
}
main(){
char jawab;
do{ system("cls");//untuk membersihkan layar
puts("\t PROGRAM INSERTION SORT");
puts("\t by: achmad sayfudin\n");
input();
do{
insertion();
//print();
printf("\n\n apakah ingin mengurutkan lagi: ");
fflush(stdin);
jawab=getchar();
}while(jawab=='y'||jawab=='Y');
printf("\n apakah ingin input lagi(y/t): ");
fflush(stdin);
jawab=getchar();
}while(jawab=='y'||jawab=='Y');
}
-------------------------------------------------------------------------------------------------------------------------
berikut code dari insertion sort.