同类型的数组d,首先将Lr1赋值给的d1将d1看成是排好序的序列中处与中间位置的记录,然后从Lr中第2个记录起依次插入到的d1之前或之后的有序序列中。先将待排序记录的关键字和d1的关键字比较,若Lrikeyd1key则将Lri插入到d1之前的有序表中。反之,将Lri插入到di之后的有序表中。在实现算法时,将d看成一个循环向量,并将两个指针first和fi
al分别指示排序过程中得到的有序序列中的第一个记录和最后一个记录在d中的位置。
四、上机调试过程
测试结果
f2结果分析
实验结果与我们对这十种种算法的性能理论分析基本吻合:插入排序与冒泡排序的时间复杂度为O
,而后三种排序算法的时间复杂度为O
log
。实验结果还显示出虽然冒泡排序和插入排序的时间复杂度相同,但插入排序的性能仍然比
f冒泡排序好,尤其在排序时间方面。
七、参考文献
1王昆仑,李红数据结构与算法北京:中国铁道出版社,2006年5月。2王立柱,C语言与数据结构北京:清华大学出版社,2003年6月第1版。
八、附录
以上是对本设计的实现功能和算法等的全面分析,以下是带注释的源代码算法
i
cludeiostreamhi
cludeioma
iphi
cludestdlibhi
cludestdiohi
cludetimehdefi
eN100i
tpqi
tg0i
th0起泡排序voidge
sorti
tbi
t
i
tiji
ts0t0fori0i
1i
forji1j
jtifbibj
i
ttempbibibjbjtemps3cout