首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实现桶排序?

如何实现桶排序?
EN

Stack Overflow用户
提问于 2013-12-14 18:47:19
回答 2查看 890关注 0票数 0

我对编程很陌生,我需要在c中实现桶排序,我需要使用链接列表来进行桶排序。我的困惑是,我将如何创建一系列链接列表,以及如何根据其值将值插入链接列表。我在网上找到的其他程序太复杂了,我听不懂them.so,有人能帮我吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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/中链表的实现。

==============================================================================

是的,您可以创建一个链表数组,假设您实现了一个链接列表:

代码语言:javascript
复制
struct linkedlist
{
  //implementation of linked list.
};

然后,在main内部,您可以声明一个链接列表:

代码语言:javascript
复制
struct linkedlist mylist1;

并在main中创建一个链接列表数组:

代码语言:javascript
复制
struct linkedlist[10] mylist2;

要访问这个链接列表数组的不同部分: mylist2.data = x;//假设在链接列表中有一个名为data的int类型,在其中存储数据。诸若此类

票数 0
EN

Stack Overflow用户

发布于 2013-12-14 19:11:21

桶排序最常见的变体是在0到最大值M之间的n个数字输入的列表上操作,并将值范围划分为大小为M/n的n个桶。如果使用插入排序对每个桶进行排序,则排序可以显示为在预期的线性时间内运行(其中对所有可能的输入取平均值)。但是,这种类型的性能会随着集群而降低;如果多个值发生在一起,那么它们都会落入一个桶中,并被缓慢地排序。

桶排序的解说视频

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20586902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档