#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_SIZE 9
#define FALSE 0
#define TURE 1
typedef char ElementType;
typedef char Status;
typedef struct
{
ElementType array[MAX_SIZE + 1 ]; //array[0] ,reserved!
int length;
}Sqlist;
void swap(Sqlist* L,int i,int j);
void InsertSort(Sqlist* L);
void PrintSqlit(Sqlist* L);
int main(void)
{
//printf("\n InsertSort sort starts\n");
Sqlist Data = {{0,9,1,5,8,3,7,4,6,2},MAX_SIZE};//Normal exzample
// Sqlist Data = {{0,2,1,3,4,5,6,7,8,9},MAX_SIZE}; //exzample for Flag
PrintSqlit(&Data);
InsertSort (&Data);
return 0;
}
void swap(Sqlist* L,int i,int j)
{
ElementType temp = L->array[i];
L->array[i] =L->array[j];
L->array[j] = temp;
}
/**
* Authour: kevin
* InsertSort sort
* */
void InsertSort(Sqlist* L)
{
int i ,j ;
for(i = 1;i < L->length + 1 ;i++)
{
for(j =i + 1; j > 1 && L->array[j] < L->array[j-1];j--)
swap(L,j,j-1);
PrintSqlit( L);
}
}
void PrintSqlit(Sqlist* L)
{
int i = 0;
for(i = 1;i < L->length + 1;i++)
printf("%d ",L->array[i]);
printf("\n");
}