模拟仿真:实际编程,比较实际情况中原算法与改进算法的执行次数,发现其是否有改进。为使数据明显,取n值较大,当n=5000时,不同k的执行次数如表
格:
当k不同时,进行数据拟合,结果如下
及O(k)=-2.1nlogn -469.2logn+26.80n+11010.2706
当n改变时,做出其一次关系式,改进后的算法时间复杂度绘图如下
O(n)= 2.579n
5, 总结
通过以上的分析证明,以及最后的数据拟合可以发现,改进后的算法在解决第k小元素的问题上,算法时间复杂度最小,故其对原算法进行了改进。明显可见,随机算法时间复杂度远好于确定型的算法的时间复杂度,改变随机算法随机出的情况的不同概率也可以进一步优化随机算法。