#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef int ElemType;
typedef struct{
ElemType *elem;//整型指针
int TableLen;
}SSTable;
void ST_Init(SSTable &ST,int len)
{
ST.TableLen=len;//申请 10 个元素的空间
ST.elem=(ElemType *)malloc(sizeof(ElemType)*ST.TableLen);
int i;
srand(time(NULL));
for(i=0;i<ST.TableLen;i++)
{
ST.elem[i]=rand()%100;//随机了 10 个数
}
}
void ST_print(SSTable ST)
{
for(int i=0;i<ST.TableLen;i++)
{
printf("%3d",ST.elem[i]);
}
printf("\n");
}
//王道书的插入排序用了哨兵,但是考研插入排序不会考哨兵,用了哨兵只是省略了 j>=0 这一句代码
void InsertSort(int *p,int len){
int i,j,insertval;
for(i=1;i<len;i++){
insertval = p[i];
for(j=i-1;j>=0 && p[j]>insertval;j--){
p[j+1] = p[j];
}
p[j+1] = insertval;
}
}
//《王道 C 督学营》
int main()
{
SSTable ST;
ST_Init(ST,10);//申请 10 个元素空间
ST_print(ST);//排序前打印
InsertSort(ST.elem,10);
ST_print(ST);//排序后再次打印
return 0;
}