摘要: 最直观的解法,排序之后取下标为k的值即可。但是此处采取的方法为类似快速排序分块的方法,利用一个支点将序列分为两个子序列(支点左边的值小于支点的值,支点右边大于等于支点的值)。如果支点下标等于k,则支点就是查找的值,如果支点的下标大于k,则在左子序列里继续寻找,如果支点下标小于k,则继续在支点右子序列... 阅读全文
posted @ 2014-04-27 23:43 AndyZeng 阅读(658) 评论(0) 推荐(0) 编辑
摘要: 查找输入序列中的最大最小数值,要求时间复杂度为1.5nC#实现如下:public class MinMaxFinder where T : IComparable { public void FindMinMax(T[] array, int startIndex, int en... 阅读全文
posted @ 2014-04-27 22:41 AndyZeng 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 计数排序(Counting sort)是一种稳定的排序算法。计数排序使用一个额外的数组C,其中第i个元素是待排序数组A中值小于等于i的元素的个数。然后根据数组C来将A中的元素排到正确的位置。限制:所有值得取值范围不能太大,并且需要知道确切的取值范围。本算法需要的辅助空间要求较高。当输入的元素是 n ... 阅读全文
posted @ 2014-04-27 22:09 AndyZeng 阅读(610) 评论(0) 推荐(0) 编辑