摘要: 随机数组中最大K个数:3, 2 ,1, 6, 4, 5最大的3个为:6,4,51、选择排序法。每次将待查询数组的最大一个找出,放入已查询数组中,一直找到K个为止。时间复杂度O(N*K)2、堆排序法。使用小顶堆,存放最大K个元素。查询数组元素,如果堆中未满K个元素,则添加到堆中。如果堆里的元素满K个,且需查询的元素比堆的最小元素还大,则将最小的元素替换,更新小顶堆。如果堆里的元素满K个,但需查询的元素不比堆的最小元素大,则无需其他操作。时间复杂度O(N*log(K))void shift(int b[], int i, int n){ int k,tmp; k=i; if ((... 阅读全文
posted @ 2013-03-25 11:03 legendmaner 阅读(185) 评论(0) 推荐(0) 编辑