void insert(struct EMP* emp[])
{
struct EMP* previous = NULL;
struct EMP* current = top;
int i;
int j;
previous = current;
current = current -> next;
for(i = 1; i < numEmps; i++)
{
j = i;
while(j > 0 && previous -> id > current -> id)
{
previous = current;
j--;
}
current = current -> next;
}
}
所以,参数是一个无序数组,我想用插入排序来命令它。我遇到问题的是它需要链接列表。有什么建议?以上是我现有的插入排序函数,它不起作用。
答案 0 :(得分:0)
我认为您需要更仔细地查看插入排序算法。实质上,它需要一个新的目标列表来添加元素(特别是在构建第二个列表时将元素插入到正确的位置)。因此,您误解的核心是这可以在一个列表中“就地”完成。
将第二个列表实现为链接列表会更安全,更容易,因为您需要能够在任意点有效地将元素插入到列表中。