排序及其算法
有关排序及其算法的博客
海岛Blog
专注于程序设计及其竞赛,专注于集成电路EDA设计
展开
-
快速排序(分治法)
原始数据使用随机函数生成。采用结构化程序设计,可以很容易改为从标准输入或文件读入数据,只需要修改函数getData即可。数据个数由宏定义给出,也可以轻松地改为输入。快速排序程序中,根据选定的基元(程序中是第一个元素),划分部分的逻辑比较复杂一些。在概率均等的前提下,基元选哪个元素都是一样的。/* * * 快速排序算法程序 * */#include #include原创 2016-04-15 13:47:01 · 1998 阅读 · 0 评论 -
归并排序(分治法)
原始数据使用随机函数生成。 采用结构化程序设计,可以很容易改为从标准输入或文件读入数据,只需要修改函数getData即可。 数据个数由宏定义给出,也可以轻松地改为输入。排序时需要一个与数据规模相等的辅助存储。/* * * 归并排序算法程序 * */#include #include#include //#define DEBUG#define N 7void原创 2016-04-17 11:03:04 · 958 阅读 · 0 评论 -
冒泡排序
冒泡排序是主要排序算法的一种,思路简单明了,在数据基本有序的情况下,还是十分有效的。它的缺点是数据交换次数也可能比较多。这里给出两个函数,一个是排序过程中,不考虑是否已经有序,按照固定的套路进行比较和交换,比较次数比较多;另外一个版本是如果已经有序,则停止处理,有额外的标志置值操作。原始数据使用随机函数生成。采用结构化程序设计,可以很容易改为从标准输入或文件读入数据,只需要修改原创 2016-04-20 07:42:56 · 1078 阅读 · 0 评论 -
插入排序
插入排序是一种简单的类似于冒泡排序的方法。然而,数据交换次数呈线性化,相对比较稳定。插入排序的基本思想是不断地将带排序的主键数据插入到有序的序列中,直到所有数据被排序。原始数据使用随机函数生成。采用结构化程序设计,可以很容易改为从标准输入或文件读入数据,只需要修改函数getData即可。数据个数由宏定义给出,也可以轻松地改为输入。/* * 插入排序算法程序 */原创 2016-04-23 22:06:07 · 496 阅读 · 0 评论 -
排序算法的时间复杂度
文章出处:http://www.algorithmist.com/index.php/SortingSorting Algorithms and Complexitiesn is the number of elementsk is the number of distinct objectsAlgorithmTime ComplexitySpace Com转载 2016-04-23 21:49:21 · 565 阅读 · 0 评论