/*两种排序算法用到的存储结构*/
sort.h
#define MAXSIZE 10
typedef struct
{
int r[MAXSIZE +1];
int length;
}SqList;
/*用于交换数组中两元素的位置*/
void swap(SqList *L, int i, int j)
{
int temp = L->r[i];
L->r[j] = L->r[i];
L->r[i] = temp;
}
/*简单选择排序(Simple Selection Sort)*/
void SelectSort(SqList *L)
{
int i, j, min;
for(i=1; i<L->length; i++)
{
min = i;
for(j=i+1; j<=L->length; j++)
{
if(L->r[min] > L->r[j])
{
min = j;
}
}
if(i!=min)
{
swap(L, i, min);
}
}
}
/*直接插入排序(Stright Insertion Sort)*/
void InsertSort(SqList *L)
{
int i, int j;
for(i=2; i<=L->length; i++) /*第1位置已经确定了,接下来就在左右两边插入*/
{
if(L->r[i]<L->r[i-1])
{
L->r[0]=L->r[i];
for(j=i-1; L->r[j]>L->r[0]; j--)
{
L->r[j+1] = L->r[j];
}
L->r[j+1] = L->r[0];
}
}
}