龙在江湖7

导航

第二章上机实践报告

1.实践题目名称:

  找第k小的数

2.问题描述:

  设计一个平均时间为O(n)的算法,在n(1<=n<=1000)个无序的整数中找出第k小的数。

3.算法描述:

利用快排的partition,先把数组的第一个数排在正确位置并返回它为第i个数。再把i和k进行比较,如果i<k,则在i的右区间找;如果i>k,则在i的左区间寻找;如果等于则查找完毕,返回数值。

4.算法时间及空间复杂度分析:

  时间复杂度:O(n)

  空间复杂度O(n)

5.心得体会:

 分治法有时候能极大地降低时间复杂度,达到意想不到的结果。

posted on 2020-10-03 23:51  龙在江湖7  阅读(104)  评论(0编辑  收藏  举报