社区
C语言
帖子详情
如何对链式存储结构进行排序?
lickiswallow
2004-07-09 05:51:27
我们这学期学了数据结构,我们所学的排序只是针对顺序表(数组),
但是若对链表的排序却没有多想,那么在实际中我们会大量使用链表的,如何排序?
希望尽量简便,因为我可以把链表中的数据"提取"到顺序表中,然后再排序,但是这样做比较浪费空间,想有一个更好的方法.
此题作为交流,因此不设给分.
...全文
299
3
打赏
收藏
如何对链式存储结构进行排序?
我们这学期学了数据结构,我们所学的排序只是针对顺序表(数组), 但是若对链表的排序却没有多想,那么在实际中我们会大量使用链表的,如何排序? 希望尽量简便,因为我可以把链表中的数据"提取"到顺序表中,然后再排序,但是这样做比较浪费空间,想有一个更好的方法. 此题作为交流,因此不设给分.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mark0402
2004-07-12
打赏
举报
回复
对单向链表用直插,第一次取下头节点,以后依次取下节点然后对关键字比较判断插入位置,最后实现排序。这个应该可以实现的,在《数据结构(c版)》清华大学出版社第二、十章里面有类似的排序算法
lickiswallow
2004-07-09
打赏
举报
回复
其实想是这样想的,但随着实际编写会发现不断的需要新增加指针来使得地址不会丢失.
不过可以试一试其他方法,因为目前我只试过冒泡法.
scvjx
2004-07-09
打赏
举报
回复
我感觉链表也一样排序啊,不过用双向链表比较好。比如用快速排序,那么找个关键字,设个LOW HIGH指针,分别指向前后两个结点,道理不是一样?
如果是单向链表可能麻烦点吧。
有个方法,也许很苯,但是可行应该:
比如从小到大排。可以先比头2个结点。设3个指针。一个指向比较过的中最小的,一个指要比的结点,另外一个先指想最小的,它可以自由移动,移动中和该比较的结点进行比较。
链式存储结构
设计直接插入排序算法
链式存储结构
设计直接插入排序算法
顺序存储结构和
链式存储结构
的优缺点比较
顺序存储结构和
链式存储结构
的比较 优缺点 顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的。 优点:存储密度大(=1),存储空间利用率高。 缺点:插入或删除元素时不方便。 链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针 优点:插入或删除元素时很方便,使用灵活。 ........................
链式存储结构
实现冒泡排序
在
链式存储结构
上设计冒泡排序算法。
链式存储结构
实现简单选择排序、直接插入排序,堆排序(20000个整数挑选最大的20个整数)
1.在
链式存储结构
上设计简单选择排序算法。 2.在
链式存储结构
上设计直接插入排序算法。 3.读入大小无序的20000个整数并已建立顺序表。请用时间复杂度最低的算法从中挑选出最大的前20个整数并打印。(提示:模仿堆排序的思想。)
链式存储结构
的直接插入排序
链式存储结构
的直接插入排序 LNode *CreateNode(int val) { LNode *node = (LNode*)malloc(sizeof(LNode)); node->data = val; node->next = NULL; return node; } void InsertSort(LinkList *head) { LinkList *p = head->next, *s, *t, *q = head; while (p) { t = hea
C语言
69,373
社区成员
243,079
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章