第二章上机实践报告

1

找第k小的数

2

输入两个整数nk,再输入n个整数,从n个整数中找到第k小的数并输出

3

该题主要有三个方法find(),partition(),swap()(交换就不赘述了)

find()主要是用于找划分点,再判断是不是第k小的数,不是就递归在左端,右端查找(决定是找左端还是右端。由判断当前的划分点是大于还是小于k决定)

Partition()功能为将输入的n个数使其比基准数x小的都在其左边,大的都在其右边,进行排列。

4

时间复杂度:O(n)

空间复杂度:Ologn

5

分治法真不错!

posted @ 2020-10-03 16:50  许剑瀚  阅读(95)  评论(0编辑  收藏  举报