`
javasee
  • 浏览: 925792 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

一步一步写算法(之链表排序)

 
阅读更多

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】


相比较线性表的排序而言,链表排序的内容稍微麻烦一点。一方面,你要考虑数据插入的步骤;另外一方面你也要对指针有所顾虑。要是有一步的内容错了,那么操作系统会马上给你弹出一个exception。就链表的特殊性而言,适合于链表的排序有哪些呢?

(1)插入排序 (适合)

(2)冒泡排序 (适合)

(3)希尔排序 (适合)

(4)选择排序 (适合)

(5)快速排序 (不适合)

(6)合并排序 (不适合)

(7)基数排序 (不适合)

(8)堆排序 (不适合)

其实,一般来说。如果涉及到数据之间的相对关系调配,那么只适合线性排序;如果只是数据内容之间的相互交换,那么这种排序方法也比较适合链表的排序。快速排序、合并排序、堆排序都涉及到了中间值的选取问题,所以不大适合链表排序。

为了说明链表排序是怎么进行的,我们可以利用插入排序作为示例,描述链表是怎么进行插入排序的。

a)首先遍历节点,一边是排序好的节点,一边是待排序的节点


b)对于待插入的节点,选择合适的位置插入即可


分享到:
评论

相关推荐

    循环链表算法.zip

    贪心算法:贪心算法是一种在每一步选择中都采取当前状态下最优决策的算法。常见的贪心算法包括最小生成树算法中的Prim算法、Dijkstra算法等。 字符串匹配算法:字符串匹配算法用于在一个字符串(文本)中查找一个...

    双向链表算法.zip

    贪心算法:贪心算法是一种在每一步选择中都采取当前状态下最优决策的算法。常见的贪心算法包括最小生成树算法中的Prim算法、Dijkstra算法等。 字符串匹配算法:字符串匹配算法用于在一个字符串(文本)中查找一个...

    数据结构与算法.xmind

    排序算法 内排序 八大基础排序 选择排序 简单选择排序 思想 每次选择最大的数插入到末尾中 做法 外层for循环控制次数 内层for循环找出最大的值的角标 找出...

    判断链表是否为回文链表leetcode-daily-algorithm:简单算法的日常练习

    判断链表是否为回文链表 leetcode 最近,我发现自己很笨拙(╯`□′)╯(┻━┻。 所以我决定做一些练习来唤起我的智慧。 好的,开始吧~ ps:请原谅我可怜的英语 :) #目录: ##day1 这个算法是要计算一个等差数列的...

    数据结构算法动画演示

    数据结构各种算法动画演示,演示过程展示了算法每执行一步时内存...其中包括顺序表、链表、栈、串、稀疏矩阵、广义表、二叉树、图、存储管理、静态查找、动态查找、内部排序、外部排序等算法的执行过程及内存变化情况。

    基础数据结构和算法(C、C++、Java各一套)

    基础的数据结构和算法C、C++、Java实现,有线性表、链表、队列、二叉树、图、查找、排序等等,全是最标准的实现,可以用来学习也可以直接使用。用来学习的话,里边有每种算法一步一步实现的图片,更加清晰。

    数据结构和算法经典演示案例分析

    数据结构和算法的难得的精品,数据结构每一步逐步生成的动态演示,将枯燥化简易,包括链表、队列、树、图、递归、排序、搜索,想不学会都难!

    数据结构(C、C++)演示系统

    程序运行的每一步都以图形示例,非常形象直观,一看就懂原理了。 演示系统包括: 顺序表 链表 栈、串 系数矩阵 广义表 二叉树 图 存储管理 静态查找 动态查找 内部排序 外部排序 P.S:每一个大类下还有很多子分类,...

    javascript随机之洗牌算法深入分析

    洗牌算法是我们常见的随机问题,在玩游戏、随机排序时经常会碰到。它可以抽象成这样:得到一个M以内的所有自然数的随机顺序数组。 在百度搜“洗牌算法”,第一个结果是《百度文库-洗牌算法》,扫了一下里面的内容,...

    leetcode三角形打印-DataStructuresInJava:用Java实现各种数据结构和算法

    下一步可能是使用素数来制作一个像样的哈希。 二叉堆 实现的最大堆 还包括一个堆排序的方法 图算法 存储无向图和有向图 添加和获取边和顶点的方法。 邻接表表示。 BFS 分布式文件系统 最小生成树 Prim 算法 使用 ...

    图书管理系统设计分析

    本系统通过对图书信息、读者信息管理的设计,在实现其基本操作...主要掌握静态链表的建立、图书及读者信息的插入、删除、查询、排序以及信息的输出等操作,其主要任务是研究数据的查找、排序算法和实现数据存盘的操作。

    13复试题1

    1、 算一个M的N次方,要求用递归 2、 快速排序算法(要求处理N个数已有序的情况)3、 一个8*8的棋盘上有一个骑士,骑士每次上下左右走一步,要求能不重

    javalruleetcode-leetcode:力扣算法题解

    java lru leetcode leetcode 介绍 力扣算法解题,java语言 题解 简单 序号(力扣题序号) 题名 ...两数之和 ...链表的中间节点 ...可以被一步捕获的棋子数 ...合并K个排序链表 接雨水 跳跃游戏II 插入区间 编辑距离 戳气球 LFU

    algorithm-stone:算法竞赛路线图,最全的算法学习地图!

    Leetcode路线图合集小众题路线图(进度10%)树路线图(进度100%)动态规划路线图(进度40%)链表路线图(进度10%)并查集路线图(进度10%)Codeforces路线图(进度1%)安装开发环境详细的开发说明参考:...

    algorithm:记录自己提升内功的每一步

    算法题整理该仓库主要是为了整理记录自己的平时...建议:对于算法初学者而言,还是按照模块和从简单类型的过渡入手开始,一是给自己增加信心,二是理解理解掌握算法的套路已完成:【30】道题堆排序斑点栈树链表阴离子

    leetcode答案-Leetcode:力码

    leetcode 答案###描述 Leetcode 问题的思考和答案。 ###技术面试的算法和数据结构 ####大纲 介绍和效率 课程介绍 句法 ...链表 ...搜索和排序 ...冒泡排序 归并排序 快速排序 ...算法案例研究 ...下一步

    leetcode中国-Algorithm:力扣&PAT&

    通过快慢双指针,一个每次走一步,另一个每次走两布。可以确定链表的中间节点。 :backhand_index_pointing_right: 示例。 快慢指针也可用于判断链表中是否存在环,若存在环则 fast 与 slow 肯定会在若干步之后相遇,...

    IOI国家集训队论文集1999-2019

    + [块状链表](#块状链表) + [动态树](#动态树) + [左偏树](#左偏树) + [跳表](#跳表) + [SBT](#sbt) + [线段树](#线段树) + [单调队列](#单调队列) + [哈希表](#哈希表) + [Splay](#splay) * [图论](#图论...

    C语言通用范例开发金典.part1.rar

    范例1-85 一趟快速排序的改进算法 248 ∷相关函数:QuickSort函数 1.5.10 简单选择排序 250 范例1-86 简单选择排序 250 ∷相关函数:SelectSort函数 1.5.11 箱子排序 252 范例1-87 箱子排序 252 ∷相关函数:...

    C语言通用范例开发金典.part2.rar

    范例1-85 一趟快速排序的改进算法 248 ∷相关函数:QuickSort函数 1.5.10 简单选择排序 250 范例1-86 简单选择排序 250 ∷相关函数:SelectSort函数 1.5.11 箱子排序 252 范例1-87 箱子排序 252 ∷相关函数:...

Global site tag (gtag.js) - Google Analytics