
数据结构和算法
文章平均质量分 62
Start_All_Over_Again
这个作者很懒,什么都没留下…
展开
-
mergeSort
归并排序是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序是一种稳定的排序算法。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。归并排序采用经典的分治策略,同时也是分析递归例程的经典实例。实现代码如下。原创 2013-07-25 15:12:27 · 525 阅读 · 0 评论 -
insertSort
插入排序由N-1趟排序组成。对于P=1趟到P=N-1趟,插入排序保证位置0到位置P上的元素为已排序状态。实现代码如下。/*************************************************** insertSort.c *** 插入排序的实现*************************************************/#include原创 2013-07-25 14:22:12 · 645 阅读 · 0 评论 -
heapSort
二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个子节点的键值时为最小堆。用最大堆实现堆排序的代码如下。/********原创 2013-07-25 15:00:03 · 492 阅读 · 0 评论 -
shellSort
希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法实质上是一种分组插入方法。1先 取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。2所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;3然后,取第二个增量d2 实现代码如下。原创 2013-07-25 14:35:45 · 566 阅读 · 0 评论 -
quickSort
快速排序,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。实现代码如下。/*************************************************** quickSort.c *** 快速排序的实现*******原创 2013-07-25 15:35:16 · 526 阅读 · 0 评论