再谈链表排序

原创 2011年01月18日 23:09:00

      前两天去面试,有一道题目是关于链表排序的,当时就用了个以前的方法,把链表存到一个数组里,再对数组排序,再还原链表,后来面试官说这个效率太低了,回来想想也是,就算个笨方法吧,所以觉得自己应该锻炼下,写了比较通用的,快捷的链表排序算法,便有了下面程序。

      算法本质很简单,模拟数组的交换排序,但是比简单的数组排序要复杂,因为你要对需要交换的节点的前一节点和后一节点进行操作,要判断a是不是头结点,当不是的时候还需要判断a的下一个节点是不是b,至于为什么,大家想一想就明白了,最后还要将a和b还原到原来的节点位置,以便下面的循环操作。注释的部分是在节点信息很少或已知的情况下直接进行交换。

       本文有不足之处,还望大家多多指正。

相关文章推荐

随想录(再谈链表)

http://blog.csdn.net/feixiaoxing/article/details/7467730 【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiao...
  • diy534
  • diy534
  • 2012年04月17日 22:55
  • 369

再谈链表的使用

#include #include #include #define MAXCHARS 30 #define DEBUG 0 /* here is the declaration ...

再谈快速排序

前几天同事提到一个问题,为什么lua中table.sort中相等的情况下fanh

【算法导论】第六章 再谈 堆排序和最大优先级队列

摘自书本: 这一部分将要给出几个解决以下排序问题的算法: 输入:n 个数的序列( a1,a2,……,an )。 输出:输入序列的一个重排 (a1’,a2’,……,an’ ),使 a1’ ...

单链表快速排序

  • 2017年11月03日 09:36
  • 3KB
  • 下载

java单向链表排序,倒置,合并

  • 2017年09月25日 11:18
  • 3KB
  • 下载

再谈OpenCV中查询表lookup table的LUT函数

今天在复习之前的OpenCV的学习内容时,发现自己对OpenCV的LUT这个函数理解得不是很透彻,研究了一上午终于是搞明白了,但自己在学习的时候发现对于这个函数的解释很少,现在把自己的理解分享出来,给...

链表创建排序查找删除

  • 2013年12月01日 16:31
  • 4KB
  • 下载

排序树 双向 循环链表

  • 2014年08月31日 22:25
  • 3KB
  • 下载

再谈图的存储方式(邻接矩阵,邻接表,前向星)

1.邻接矩阵 1.存图思想 使用一个矩阵来描述一个图,对于矩阵的第i行第j列的值,表示编号为i的顶点到编号为j的顶点的权值。 2.代码实现 // 最大顶点数 const int V = 1000;...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:再谈链表排序
举报原因:
原因补充:

(最多只允许输入30个字)