我对编程很陌生,我需要在c中实现桶排序,我需要使用链接列表来进行桶排序。我的困惑是,我将如何创建一系列链接列表,以及如何根据其值将值插入链接列表。我在网上找到的其他程序太复杂了,我听不懂them.so,有人能帮我吗?
发布于 2013-12-14 19:05:39
首先创建一个具有所有所需函数(如add、remove、sorts等)的链接列表,然后将所有未排序的数据添加到其中,然后将您的列表传递给实际对列表进行排序的函数。并使用交换等函数来交换对象(ints、字符或字符串,不管您正在排序什么)。
如果你是c的新手,这可能会有点混乱,但是先开始,然后你可以粘贴一些代码供我们查看和帮助,但不要期望有人会给你提供完整的解决方案。
另外,这是对桶排序的一个很好的解释,这可能有助于您理解需要实现什么。
vid=Iiuqrns0Gwk&v=ovAfqUafjAA
这可以帮助您理解c# http://spicemind.com/notes/c/c-linked-list-implementation/中链表的实现。
==============================================================================
是的,您可以创建一个链表数组,假设您实现了一个链接列表:
struct linkedlist
{
//implementation of linked list.
};然后,在main内部,您可以声明一个链接列表:
struct linkedlist mylist1;并在main中创建一个链接列表数组:
struct linkedlist[10] mylist2;要访问这个链接列表数组的不同部分: mylist2.data = x;//假设在链接列表中有一个名为data的int类型,在其中存储数据。诸若此类
发布于 2013-12-14 19:11:21
桶排序最常见的变体是在0到最大值M之间的n个数字输入的列表上操作,并将值范围划分为大小为M/n的n个桶。如果使用插入排序对每个桶进行排序,则排序可以显示为在预期的线性时间内运行(其中对所有可能的输入取平均值)。但是,这种类型的性能会随着集群而降低;如果多个值发生在一起,那么它们都会落入一个桶中,并被缓慢地排序。
桶排序的解说视频
https://stackoverflow.com/questions/20586902
复制相似问题