摘要:
randomized_select使用划分方法randomized_partition(),返回主元位置q(第k小元素)。要查找的是第 i 小元素,若恰好等于k,那么直接返回。如果 i < k,则继续在[p, q - 1]中搜索第 i 小元素。如果 i > k,则继续在[q + 1, r]中搜索第 i - k 小元素。int randomized_select(int A[], int p, int r, int i)
{ if (p == r) return A[p]; int q = randomized_partition(A, p, r); ... 阅读全文
随笔档案-2012年2月25日
《算法导论》第9章 顺序统计学 (1)最小值和最大值
2012-02-25 22:58 by htc开发, 340 阅读, 收藏,
摘要:
1. 查找最小值逻辑比较简单,用第一个元素来初始化最小值min,然后与数组中其余元素比较,找出最小值。时间复杂度是O(n),已经最优化了。int minimum(int A[], int len)
{ int min = A[0]; int i; for (i = 2; i < len; i++) if (A[i] < min) min = A[i]; return min;
}2. 同时找最大和最小值如果依然采用前面的方法,用第一个元素初始化min和max。然后将min和ma... 阅读全文
浙公网安备 33010602011771号