#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 SelectSort(Sqlist* L);
void PrintSqlit(Sqlist* L);
int main(void)
{
//printf("\n SelectSort 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);
SelectSort (&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
* SelectSort sort
* */
void SelectSort(Sqlist* L)
{
int i ,j ;
for(i = 1;i < L->length + 1 ;i++)
{
int min = i;
for(j = i + 1;j < L->length + 1;j++ )
{
if(L->array[min] > L->array[j])
{
min = j;
}
}
swap(L,min,i);
PrintSqlit( L);
}
}
void PrintSqlit(Sqlist* L)
{
int i = 0;
for(i = 1;i < L->length + 1;i++)
printf("%d ",L->array[i]);
printf("\n");
}