实用文案标准文档排序算法的时间性能比较一、问题描述给出一组实验来比较下列排序算法的时间性能:快速排序、堆排序、冒泡排序二、基本要求(1)时间性能包括平均时间性能、最好情况下的时间性能、最差情况下的时间性能等
(2)实验数据应具有说服力,包括:规模范围要大(如从100到10000),数据的初始特性类型要多,因而需要具有随机性;实验数据的组数要多,即同一规模的数组要多选几种不同类型的数据来实验
实验结果要能以清晰的形式给出,如图、表等
(3)算法所用时间必须是机器时间,也可以包括比较和交换元素的次数
(4)实验分析及其结果要能以清晰的方式来描述,如数学公式或图表等
(5)要给出实验的方案及其分析
三、工具/准备工作MicrosoftVisualC++6
四、分析与实现1
快速选择排序这个是冒泡排序的一种改进,他的基本思想就是在当前无序区R【1⋯
H】中任取一个数据元素的基准用此基准将当前无序区划分成左右二个较小的无序去区,R【1⋯⋯i-1】和R【i+1⋯
H】,且左边的元素序子区中的数据元素均小于等于基数元素,右边的元素序子区中的数据元素均大于等于基数元素
直到所有无序子区中的数据元素实用文案标准文档均已排序为止
堆排序堆排序实质上就是具备有如下性质的完全二叉树:树中任一非子叶节点的关键字均大于等于其子孩子结点的关键字,它只要记录一个大小的辅助空间,每个待排序的记录只占有一个存储空间,一般记录数较小的
但对基数较大的文件还是很有效的,因为运行时间主要是小号在建初始堆和调整建新堆时进行的反复的筛选上的
冒泡排序这种排序的比较基本思想就是二二比较待排序的数据元素的大小,发现二个数据元素的次序相反时候,就进行交换,知道没有反序的数据为止
冒泡排序是一种一次比较出最小或最大值,然后将其放置序列的最后一位置,再将剩下的从打一个位置开始到N-1的位置进行重复的操作