#include<stdio.h>
#include<stdlib.h>
#define N 100000
void insertionsort(int *A,int b);
void swap(int i,int j,int *A);
int main(void)
{
int i,A[N],b,c;
FILE *fp;
if((fp=fopen("rand.dat","rt"))==NULL){
printf("error");
exit(1);
}
fscanf(fp,"%d",&b);
for(i=0;i<b;i++){
A[i]=NULL;
}
printf("Unsorted data\n");
for(i=0;i<b;i++){
fscanf(fp,"%d",&A[i]);
printf("A[%d]=%d\n",i,A[i]);
}
printf("\n");
insertionsort(A,b);
printf("After sorting the data\n");
for(i=0;i<b;i++){
printf("A[%d]=%d\n",i,A[i]);
}
fclose(fp);
return 0;
}
void insertionsort(int *A,int b)
{
int i,j,k;
for(i=1;i<b;i++){
j=A[i];
k=i;
while((j<A[k-1])&&(k-1>=0)){
A[k]=A[k-1];
k=k-1;
}
A[k]=j;
}
return;
}
CiNpbmNsdWRlPHN0ZGlvLmg+CiNpbmNsdWRlPHN0ZGxpYi5oPgojZGVmaW5lIE4gMTAwMDAwCgp2b2lkIGluc2VydGlvbnNvcnQoaW50ICpBLGludCBiKTsKdm9pZCBzd2FwKGludCBpLGludCBqLGludCAqQSk7CgppbnQgbWFpbih2b2lkKQp7CglpbnQgaSxBW05dLGIsYzsKCUZJTEUgKmZwOwoKCWlmKChmcD1mb3BlbigicmFuZC5kYXQiLCJydCIpKT09TlVMTCl7CgkJcHJpbnRmKCJlcnJvciIpOwoJCWV4aXQoMSk7Cgl9CgoJZnNjYW5mKGZwLCIlZCIsJmIpOwoKCWZvcihpPTA7aTxiO2krKyl7CgkJQVtpXT1OVUxMOwoJfQoKCXByaW50ZigiVW5zb3J0ZWQgZGF0YVxuIik7Cglmb3IoaT0wO2k8YjtpKyspewoJCWZzY2FuZihmcCwiJWQiLCZBW2ldKTsKCQlwcmludGYoIkFbJWRdPSVkXG4iLGksQVtpXSk7Cgl9CglwcmludGYoIlxuIik7CgoJaW5zZXJ0aW9uc29ydChBLGIpOwoKCXByaW50ZigiQWZ0ZXIgc29ydGluZyB0aGUgZGF0YVxuIik7Cglmb3IoaT0wO2k8YjtpKyspewoJCXByaW50ZigiQVslZF09JWRcbiIsaSxBW2ldKTsKCX0KCglmY2xvc2UoZnApOwoKCXJldHVybiAwOwp9Cgp2b2lkIGluc2VydGlvbnNvcnQoaW50ICpBLGludCBiKQp7CglpbnQgaSxqLGs7CgoJZm9yKGk9MTtpPGI7aSsrKXsKCQlqPUFbaV07CgkJaz1pOwoJCXdoaWxlKChqPEFbay0xXSkmJihrLTE+PTApKXsKCQkJQVtrXT1BW2stMV07CgkJCWs9ay0xOwoJCX0KCQlBW2tdPWo7Cgl9CglyZXR1cm47Cn0K