0
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;
    }
}

所以,参数是一个无序数组,我想使用插入排序对其进行排序。我遇到的问题是它需要链接列表。有什么建议么?以上是我现有的不起作用的插入排序功能。

4

1 回答 1

0

我认为您需要更仔细地查看插入排序算法。本质上,它需要一个新的目标列表来添加元素(特别是在构建第二个列表时将元素插入到正确的位置)。因此,您误解的核心是认为这可以在单个列表上“就地”完成。

将第二个列表实现为链表会更明智、更容易,因为您需要能够在任意点有效地将元素插入到列表中。

于 2013-02-14T08:51:52.623 回答