#include <stdio.h>
int iList[11] = {0,4,5,2,4,6,92,37,7,29,8};//iList[0] is not used
//直接插入排序
void InsertDirect(int iList[], int iLen)//iLen is the Length of iList
{
int i;
int j;
for(i = 2; i < iLen; i++)//start from the second
{
if(iList[i] < iList[i - 1])//if need to move
{
iList[0] = iList[i];//copy as guard
iList[i] = iList[i - 1];
for(j = i - 2; iList[0] < iList[j]; j--)//if j == 0 jump out the circle
{
iList[j + 1] = iList[j];
}
iList[j + 1] = iList[0];
}
}
}
int main()
{
int i;
InsertDirect(iList, 11);
for(i = 1; i < 11; i++)//print except the first one
{
printf(i == 10 ? "%d\n" : "%d,", iList[i]);
}
return 0;
}
直接插入排序 一个简单示例
最新推荐文章于 2023-12-18 05:17:02 发布