【发布时间】:2013-02-14 08:08:46
【问题描述】:
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;
}
}
所以,参数是一个无序数组,我想使用插入排序对其进行排序。我遇到的问题是它需要链接列表。有什么建议么?以上是我现有的不起作用的插入排序功能。
【问题讨论】:
-
当然不行,你用
previous还是NULL。 -
我认为 previous=current=top 所以那里没问题。
-
我添加了先前等于当前的位置,然后当前等于下一个......它构建并运行,但排序没有任何变化。有什么想法吗?
-
强制进行插入排序,因为如果我不得不对排序进行编码,我将heap-sort 原始向量。当然,如果没有算法要求,你总是可以在原始容器上使用
std::sort并称其为好。另一方面,如果你想对 same 链表进行排序,它是一种在恒定空间中合并排序的数据结构,因为它能够任意将节点指针指向新目标。
标签: c linked-list insertion-sort unordered