社区
非技术区
帖子详情
如何用单向链表进行数字排序?
jznsmail
2004-03-04 08:44:47
是否可以对单向链表进行排序。
例如输入任意20个数字组成链表,是否可以用链表对其排序,而不需要用数组排序?
请写出算法好么???
...全文
36
回复
打赏
收藏
如何用单向链表进行数字排序?
是否可以对单向链表进行排序。 例如输入任意20个数字组成链表,是否可以用链表对其排序,而不需要用数组排序? 请写出算法好么???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
C#,
单向
链表
(Simply Linked List)的插入
排序
(Insertion Sort)算法与源代码
各种数据结构、算法及实用的C#源代码 C#,
单向
链表
(Simply Linked List)的插入
排序
(Insertion Sort)算法与源代码 所谓插入
排序
法乃是将一个数目插入该占据的位置。 假设我们输入的是 “5,1,4,2,3” 我们从第二个
数字
开始,这个
数字
是1,我们的任务只要看看1有没有正确的位置,我们的做法是和这个
数字
左边的
数字
来比,因此我们比较1和5,1比5小,所以我们就交换1和5,原来的排列就变成了“1,5,4,2,3 ” 接下来,我们看第3个
数字
有没有在正确的位置。这个
数字
是4,它的左边
数字
是5,4比5小,所以我们将4和5交换,排列变成了 “1,4,5,2,3 "我们必须继续看4有没有在正确的位置,4的左边是1,1比4小,4就维持不动了。 再来看第四个
数字
,这个
数字
是2,我们将2和它左边的
数字
相比,都比2大,所以就将2一路往左移动,一直移到2的左边是1,这时候
排序
变成了 “1,2,4,5,3 ” 最后,我们检查第五个
数字
,这个
数字
是3,3必须往左移,一直移到3的左边是2为止,所以我们的排列就变成了 “1,2,3,4,5 ”
排序
因此完成了。 所谓插入
排序
法,就是检查第
二叉
排序
树算法实现(本人搜寻到的,好不容易的)
总体设计:设计
单向
链表
实现二叉树的创建及
排序
; 要求: (1)设计
单向
链表
,能够将一组
数字
(数量为2的N次方)顺序构建一个满二叉树。 (2)对该二叉树
进行
排序
,要求实现将所有
数字
按照从左向右递增的顺序
排序
实现.
leetcode不会-Code-for-Interview:面试守则
leetcode 不会面试守则 我的解决方案 介绍 数据结构概述 破解谷歌面试 添加了一些新的重要问题 数据结构:插入、删除、包含、获取随机元素,全部在 O(1) 链接列表: 您将如何检测循环并将其从
链表
中删除 创建一个执行加法的函数,其中
数字
表示为两个
链表
。 在
链表
中插入节点(基于一些约束) 删除
链表
中的给定节点(在给定约束下) 在交替位置将一个
链表
合并到另一个
链表
中 编写一个函数来反转
单向
链表
和双向
链表
以给定大小的组反转列表 为什么数组优先使用快速
排序
,
链表
优先使用合并
排序
链表
的归并
排序
2个
链表
的并集和交集 编写函数获取两个
链表
的交点 从
单向
链表
中选择一个随机节点 找到
链表
的中间元素并删除 隔离
链表
中的偶数和奇数节点 展平
链表
对存储在不同机器上的
数字
进行
排序
合并 K 个
排序
链表
对 0、1 和 2 的
链表
进行
排序
将一个循环
链表
分成两半 循环
链表
的
排序
插入 在
链表
中从头开始交换第 K 个节点与从末尾开始的第 K 个节点 删除重复项:编写代码以从未
排序
的
链表
中删除重复项。 回文:实现一个函数来检查
链表
是否是回文。 实现 LRU 缓存 二元
链表
的十进制等价物 给定
链表
的成对交
数据结构(C语言版)\Java数据结构和算
第1章 基本概念 1.1 概观:系统生命周期 1.2 指针和动态存储分配 1.3 算法形式规范 1.4 数据抽象 1.5 性能分析 1.6 性能度量 1.7 参考文献和选读材料 第2章 数组和结构 2.1 数组 2.2 数组的动态存储分配 2.3 结构体和联合体 2.4 多项式 2.5 稀松矩阵 2.6 多维数组的表示 2.7 字符串 2.8 参考文献和选读材料 2.9 补充习题 第3章 栈与队列 3.1 栈 .3.2 动态栈 3.3 队列 3.4 动态循环队列 3.5 迷宫问题 3.6 表达式求值 3.7 多重栈与多重队列 3.8 补充习题 第4章
链表
4.1
单向
链表
4.2 用C语言表示
单向
链表
4.3 链式栈与链式队列 4.4 多项式 4.5 其它
链表
操作 4.6 等价类 4.7 稀疏矩阵 4.8 双向
链表
第5章 树 5.1 引论 5.2 二叉树 5.3 遍历二叉树 5.4 其它二叉树操作 5.5 线索二叉树 5.6 堆 5.7 二叉查找树 5.8 选拔树 5.9 森林 5.10 不相交集合的表示 5.11 二叉树的计数 5.12 参考文献和选读材料 第6章 图 6.1 图的抽象数据类型 6.2 图的基本操作 6.3 最小代价生成树 6.4 最短路径和迁移闭包 6.5 活动网络 6.6 参考文献和选读材料 6.7 补充习题 第7章
排序
7.1 动机 7.2 插入
排序
7.3 快速
排序
7.4
排序
最快有多快 7.5 归并
排序
7.6 堆
排序
7.7 多关键字
排序
7.8
链表
排序
和索引表
排序
7.9 内部
排序
小结 7.10 外部
排序
7.11 参考文献和选读材料 第8章 Hash法 8.1 引言 8.2 静态Hash法 8.3 动态Hash法 8.4 Bloom滤波器 8.5 参考文献和选读材料 第9章 优先队列 9.1 单端优先队列和双端优先队列 9.2 左倾树 9.3 二项式堆 9.4 Fibonacci堆 9.5 配偶堆 9.6 对称最小-最大堆 9.7 区间堆 9.8 参考文献和选读材料 第10章 高效二叉查找树 10.1 最优二叉查找树 10.2 AVL树 10.3 红-黑树 10.4 Splay树 10.5 参考文献和选读材料 第11章 多路查找树 11.1 m-路查找树 11.2 B-树 11.3 B+树 11.4 参考文献和选读材料 第12章
数字
查找结构 12.1
数字
查找树 12. 2 二路Trie树和Patricia树 12.3 多路Trie树 12.4 后缀树 12.5 Trie树和互联网的包转发 12.6 参考文献和选读材料
数据结构与算法.xmind
数据结构与算法
排序
算法 内
排序
八大基础
排序
选择
排序
简单选择
排序
思想 每次选择最大的数插入到末尾中 做法 外层for循环控制次数 内层for循环找出最大的值的角标 找出最大角标后,
进行
交换 优化思路 同时获取最大值和最小值,然后分别插入数组的首部和尾部 堆
排序
思想 使用大顶堆的思想来
排序
,每次建堆后交换 做法 总体:建堆-替换 建堆 只要左子树或右子树大于当前根节点,则替换 替换后会导致下面的子树发生了变化,因此同样需要
进行
比较,直至各个节点实现父>子这么一个条件(递归) 交换
排序
冒泡
排序
思想 每次俩俩交换,将最大值交换到末尾 做法 外层for控制循环次数 内层for控制比较次数 每次循环之后,比较次数都会减少一次 优化思路 如果一趟
排序
后没有发生位置变化,那么此时就是有序了 快速
排序
思想 每次将比支点小的放在支点左边,比支点大的放在支点右边 做法 外循环while只要i和j不碰撞查找 内层两个while循环分别查找出比支点小的和比支点大的角标 如果i<=j满足条件,就交换 一趟
排序
后,支点的左边都比支点小,支点右边都比支点大 只要满足L
排序 思想 用增量来将数组
进行
分隔,直到增量为1。底层干的还是插入
排序
干的活 做法 最外层for外循环控制增量的数量,每次/2 第二层for循环控制每次增量那组开始
进行
插入
排序
,直至完毕 第三层while循环找到要插入到哪个位置 归并
排序
思想 将两个已排好序的数组合并成一个有序的数组 做法 递归拆分出两个有序的数组,从mid的位置开始拆分,递归出口:只有一个值的时候就不用拆分了 合并两个有序的数据 分别往两个数组填充已有序的数据 比较两个数组的值谁小,谁小就放到我们的数组中 如果比较完之后还有剩余的数据,那么用while直接添加到我们的总数组中 优化思路 当递归到规模足够小时,利用插入
排序
归并前判断一下是否还有必要归并 只在
排序
前开辟一次空间 基数(桶)
排序
思想 分配,回收(分配到不同的位置上,然后回收)..不断分配..回收来
进行
排序
,直到有序 做法 分配一个[array.length][10列]的二维数组来装我们的元素 最外层for循环控制要分配和回收的次数(根据最大值) 将元素的个、十、百位依次放到桶子上(第一次就是放个位,第二次放十位) 依据每列回收桶子,两个for循环 外
排序
查找算法 二分查找 分块查找 哈希查找 贪心算法 求最小生成树的Prim算法和Kruskal算法 爬山问题 回溯算法 n皇后问题 动态规划Dynamic Planning 应用 求最长公共子序列LCS 矩阵连乘问题 爬楼梯问题 找零问题 0-1背包问题 分治算法Divide and Conquer 应用:归并
排序
其它 Rabin fingerprints 文件指纹算法 BitMap 位图算法 BloomFilter 布隆过
非技术区
15,440
社区成员
58,165
社区内容
发帖
与我相关
我的任务
非技术区
C/C++ 非技术区
复制链接
扫一扫
分享
社区描述
C/C++ 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章