1.问题
[描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)]
在一个数组中找到第k小的元素并输出
2.解析
3.设计
[核心伪代码]
int select(int a[], int low, int high, int k)
{
int middle;
middle = split(a, low, high);
if (middle == k)
return a[k];
else if (middle < k)
return select(a, middle + 1, high, k);
else /* if(middle > k) */
return select(a, low, middle - 1, k);
}
4.分析
[算法复杂度推导]
5.源码
[github源码地址]
https://github.com/Wanghaonan520/algorithm