中南大学第5章-减治法.pptVIP

  • 19
  • 0
  • 约1.24万字
  • 约 39页
  • 2019-07-20 发布于四川
  • 举报
* 选择问题特例——查找中值(续1) 中值查找算法: 1. 蛮力策略:—— 直接基于问题本身而设计算法 先对列表按非降序排序,然后选第 k 位置上的元素即中位值。该算法 时间效率显然取决于排序算法的效率,若用合并排序等优秀算法,本 算法效率类型属于 O(nlogn) 型。 2. 减治策略:—— 更高效(效率分析类似于前述的快速排序,本节略) 回顾:快速排序算法中关于分区(Partition)的概念。 s左边有 s-1个元素值≤A[s],s右边有n-s个元素值≥A[s],根据中值的 定义, n为奇数:s-1=n-s,s=n/2+1/2 ;n为偶数 s-1+1=n-s,s=n/2。 1) 若s=k,A[s] 就是中值。—— 停止条件 2) 若sk,分裂点在中值点右边,对s左子区递归分解。(A[s]A[k]) 3) 若sk,分裂点在中值点左边,对s右子区递归分解。(A[s]A[k]) * 减治法查找中值过程示例 减治法查找中值过程示例: 求:已知列表A的中值,A={ 4,1,10,9,7,12,8,2,15 }。观察:中值=8 解:n=9, 中值元素下标 k=9/2+1=5(向上取整),即中值A5 = ? 选择第1个元素为中轴p,用左右扫描法得到分裂点,并安排新顺序: p=A[1]=4 4 1

文档评论(0)

1亿VIP精品文档

相关文档