#include <stdio.h>
#define n 7
typedef int datatype;
typedef struct
{int key;
datatype other;
}rectype;
rectype r[n+1],r1[n+1];
void insertsort(rectype r[])
{int i,j;
for(i=2;i<=n;i++)
{r[0]=r[i];
j=i-1;
while(r[0].key<r[j].key) r[j+1]=r[j--];
r[j+1]=r[0];
}
}
/*
void bubblesort(rectype r[])
{int i,j,noswap;
rectype temp;
for(i=1;i<n;i++)
{noswap=1;
for(j=n-1;j>=i;j--)
if(r[j+1].key<r[j].key)
{temp=r[j+1];
r[j+1]=r[j];
r[j]=temp;
noswap=0;
}
if(noswap) break;
}
}
int partition(int l,int h)
{int i,j;
rectype temp;
i=l;j=h;temp=r[i];
while(i!=j)
{while((r[j].key>=temp.key)&&(i<j)) j--;
if(i<j) r[i++]=r[j];
while((r[i].key<=temp.key)&&(i<j)) i++;
if(i<j) r[j--]=r[i];
}
r[i]=temp;
return i;
}
void quicksort(int s,int t)
{int i;
if(s<t)
{i=partition(s,t);
quicksort(s,i-1);
quicksort(i+1,t);
}
}
void selectsort(rectype r[])
{int i,j,k;
rectype temp;
for(i=1;i<n;i++)
{k=i;
for(j=i+1;j<=n;j++)
if(r[j].key<r[k].key) k=j;
if(k!=i)
{temp=r[k];
r[k]=r[i];
r[i]=temp;
}
}
}
void sift(int i,int m)
{int j;
rectype temp;
temp=r[i];
j=2*i;
while(j<=m)
{if((j<m)&&(r[j].key<r[j+1].key)) j++;
if(temp.key<r[j].key)
{r[i]=r[j];i=j;j=2*i;}
else break;
}
r[i]=temp;
}
void heapsort(rectype r[])
{int i;
rectype temp;
for(i=n/2;i>=1;i--)
sift(i,n);
for(i=n;i>=1;i--)
{temp=r[1];
r[1]=r[i];
r[i]=temp;
sift(1,i-1);
}
}
void merge(rectype r[],rectype r1[],int low,int mid,int high)
{int i,j,k;
i=low;j=mid+1;k=low;
while((i<=mid)&&(j<=high))
if(r[i].key<=r[j].key)
r1[k++]=r[i++];
else
r1[k++]=r[j++];
while(i<=mid) r1[k++]=r[i++];
while(j<=high) r1[k++]=r[j++];
}
void mergepass(rectype r[],rectype r1[],int length)
{int i,j;
i=1;
while(i+2*length-1<n)
{merge(r,r1,i,i+length-1,i+2*length-1);
i=i+2*length;
}
if(i+length-1<n)
merge(r,r1,i,i+length-1,n);
else
for(j=i;j<=n;j++) r1[j]=r[j];
}
void mergesort(rectype r[])
{int length;
length=1;
while(length<n)
{mergepass(r,r1,length);
length=2*length;
mergepass(r1,r,length);
length=2*length;
}
}*/
void main()
{int i;
r[1].key=25;
r[2].key=57;
r[3].key=48;
r[4].key=37;
r[5].key=12;
r[6].key=92;
r[7].key=86;
//for(i=1;i<=n;i++)
// printf("%d ",r[i].key);
printf("\n\n");
insertsort(r);
/*
bubblesort(r);
quicksort(1,7);
selectsort(r);
heapsort(r);
mergesort(r);*/
printf("result:\n");
for(i=1;i<=n;i++)
printf("%d ",r[i].key);
printf("\n");
}