随笔分类 -  数据结构

摘要:堆排序堆排序是一种选择排序。是不稳定的排序方法。时间复杂度为O(nlog2n)。堆排序的特点是:在排序过程中,将排序数组看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲节点和孩子节点之间的内在关系,在当前无序区中选择关键字最大(或最小)的记录。 基本思想1.将要排序的数组创建为一个大根堆。大根堆的堆顶元素就是这个堆中最大的元素。2.将大根堆的堆顶元素和无序区最后一个元素交换,并将无序区最后... 阅读全文
posted @ 2009-12-30 15:36 keith_bin 阅读(320) 评论(0) 推荐(0)
摘要:希尔排序是插入排序的一种,时间性能优于直接插入排序,是一种不稳定的排序,时间复杂度为 O(nlogn)。基本思想将整个无序列分割成若干小的子序列分别进行直接插入排序。先取一个小于 n 的整数 d1 作为第一个增量,把文件的全部记录分成 d1 个组。所有距离为 dl 的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量 d2 < d1 重复上述的分组和排序,直至所取的增量... 阅读全文
posted @ 2009-12-30 15:33 keith_bin 阅读(848) 评论(0) 推荐(0)
摘要:1.基本概念1.1 稳定排序和不稳定排序稳定排序是所有相等的数经过某种排序方法后,仍能保持它们在排序之前的相对次序。反之,就是不稳定排序。比如:一组数字排序前是 a1,a2,a3,a4 其中 a2 和 a3 相等,经过某种排序后为 a4,a2,a3,a1 则称这种排序是稳定的,因为 a2 排序前在 a3 的前面,排序后还是在 a3 的前面。如果变成 a4,a3,a2,a1 就是不稳定的。 1.2 ... 阅读全文
posted @ 2009-12-30 15:27 keith_bin 阅读(202) 评论(0) 推荐(0)