查找中位数是面试中经常出现的一类题。用快速排序的思想可以解决这种问题,算法如下:
1.抽取数组的第一个元素作为中间值,用快速排序的思想进行一次调整,将比中间值小的放在中间值的左边,比中间值大的放在中间值的右边。
2.如果中间值的索引等于数组长度的一半,那么就找到了。
3.如果中位数的索引比数组长度的一半大的话,那么在中间值的索引到数组的结尾这个期间内找第(数组长度的一半-中位数)大的数。
4.否则在数组的开始到中间值的索引这段期间内找第(数组长度的一半大)大的数。
查找中位数是面试中经常出现的一类题。用快速排序的思想可以解决这种问题,算法如下:
1.抽取数组的第一个元素作为中间值,用快速排序的思想进行一次调整,将比中间值小的放在中间值的左边,比中间值大的放在中间值的右边。
2.如果中间值的索引等于数组长度的一半,那么就找到了。
3.如果中位数的索引比数组长度的一半大的话,那么在中间值的索引到数组的结尾这个期间内找第(数组长度的一半-中位数)大的数。
4.否则在数组的开始到中间值的索引这段期间内找第(数组长度的一半大)大的数。