数据结构与算法
文章平均质量分 75
Ryan-hou
That's all about persistence.
展开
-
排序之快速排序
排序之快速排序 接着归并排序继续整理,我们知道了归并排序的关键在于归并,分解的部分很微小,因而被称为归并排序,这是一种“先享受后付出代价”的思维方式,同时归并排序还存在一个缺点,那就是它是一个异地排序,即在排序的过程中需要一个额外的存储空间。与之相对的,在1962年由C.A.R Hoare提出了另一种思路的排序算法——快速排序。该算法也被誉为计算史上的伟大算法,应用十分广泛。 快速原创 2014-04-13 23:30:27 · 886 阅读 · 0 评论 -
排序之直接插入排序
排序之直接插入排序 插入排序的基本思想是:每次将一个待排序的元素,按其大小插入到已经排好序的子序列中的适当位置,直到全部元素插入完成为止,下面先来介绍一下直接插入排序。 直接插入排序的思路是:假设待排序的元素放在数组a[0..n-1]中,排序过程中的某一时刻,a被划分为两个子区间a[0…i-1]和a[i…n-1](刚开始时i=1,有序区只有a[0]一个元素),其中,前一个子区间是已经排原创 2014-04-14 22:48:30 · 677 阅读 · 0 评论 -
排序之基数排序
排序之基数排序 下面介绍一种比较“特别”的排序算法,前面讨论的几种算法均是基于关键字之间的比较来实现的,而基数排序则是通过“分配”和“收集”过程来实现排序的,不需要进行关键字间的比较,是一种借助多关键字排序的思想对单关键字排序的方法。其实通俗的来讲,基数排序的思想类似于我们对数字进行比较大小的思路,逐位的来进行比较。基数排序的关键就在于按位进行“分配”和“收集”,接下来我们详细讨论。原创 2014-05-01 15:20:41 · 947 阅读 · 0 评论 -
排序之希尔排序
排序之希尔排序 希尔排序属于插入排序的一种方式,不同于直接插入排序,希尔排序实际上是一种分组插入排序。先来说一下它的基本思想:先取定一个小于n的整数d1作为第一个增量,把表的全部元素分成d1个组,所有相互之间距离为d1的倍数的元素放在同一个组中,在各组内进行直接插入排序;然后,取第二个增量d2(d2 希尔排序在每趟并不产生有序区,在最后一趟排序结束前,所有元素并不一定归位。但是在每趟排原创 2014-04-16 21:41:49 · 900 阅读 · 0 评论 -
排序之直接选择排序
排序之直接选择排序 先说一下选择排序的基本思想:每一趟从待排序的元素中选出最小的或最大的元素,顺序放在已排好序的序列最后,直到全部元素排序完毕。选择排序适用于从大量的元素中选择一部分排序元素。先介绍一下直接选择排序。 直接选择排序的思路是:在第i趟排序开始时,当前有序区与无序区分别为a[0…i-1]和a[i…n-1](0= 第i趟排序开始前: 有序区原创 2014-04-19 22:51:42 · 648 阅读 · 0 评论 -
排序之堆排序
排序之堆排序 堆排序是一种树形选择排序方法,它的特点是,在排序过程中,将a[0…n]看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲节点与孩子节点之间的内在关系,在当前无序区中选择关键字最大(或最小)的元素。 先来介绍一下二叉堆的定义:父节点的值总是大于等于(或小于等于)任何子节点的值;同时每个节点的左子数与右子树也均为二叉堆。前者称为最大堆,后者称为最小堆,我们这里使用最小堆原创 2014-04-23 14:10:33 · 1020 阅读 · 0 评论 -
排序之归并排序
paixuzhiguibing原创 2014-04-12 23:41:12 · 757 阅读 · 0 评论