数据结构课程设计
需求分析
各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,
或大概执行时间,存在一定的却缺陷。我们将通过随机的数据比较各算法的关键字比较次数和关键字移动次数,以取得直观感受。所设计的程序应能够将产生的随机数据同时用不同的内部排序算法排序,并列出关键字比较次数与移动次数,方便比较。待排序表的表长不少于100,为方便起见,我们令
表长等于100,用5组随机的数据排序的结果作比较。
.
概要设计
2.1 可能排序表的抽象数据类型定义:
ADT OrderableList{
数据对象:D=
{|∈IntegerSet,i=1,2,……,n,n≥0} 数据关系:R1={
<基本操作: InitList(n)
操作结果:构造一个长度为n,元素值依次为1,2, ,n的有序表。 RandomizeList(d,isInverseOrder)
操作结果:首先根据isInverseOrder为True或False,将表置为逆序或正序,然后将表进行d(0≤d≤8)级随机打乱。d为0时表不打乱,d越大,打乱程度越高。
RecallList()
操作结果:恢复最后一次用RandomizeList随机大乱的可排序表。 ListLength()
操作结果:返回可排序的长度。
,|,∈D,i=2,……n}
1