随笔分类 -  减治法

摘要:问题描述: 现有两个等长的升序序列的序列A,B,试设计一个时间和空间都尽可能高效的算法,找出两个序列的中位数 算法的基本思想是:分别求出两个序列的中位数,即为a b,有下列三种情况1:a=b;即a 为两个序列的中位数2:a<b: 则中位数只能出现在a和b之间,在序列A中舍弃a之前的元素的到序列A1, 阅读全文
posted @ 2020-05-26 10:22 小小阿飞 阅读(1388) 评论(0) 推荐(0)
摘要:问题描述:n个数中找出第k小的元素 输入: 95 3 8 1 4 6 9 2 74 输出: 4 用快排思想先找出数组中第一个元素的位置(博客中有快排算法): 排序前:5 3 8 1 4 6 9 2 7 排序后:2 3 4 1 5 6 9 8 7 (5的位置确定了) 用k与元素5的下标计较,等于就输出 阅读全文
posted @ 2020-05-25 17:52 小小阿飞 阅读(1161) 评论(0) 推荐(0)
摘要:减治法定义:将问题分成若干子问题,只解决其中的一个适合的子问题。 问题描述:n个硬币中有一个假币,假的硬币比真的硬币轻,一个只有0刻度的天平,求出假币的位置。 输入: 8 2 2 2 2 2 1 2 2 输出: 6 当n为偶数(start+end)为奇数时,将n个硬币等分,比较谁轻,轻的一方有假币。 阅读全文
posted @ 2020-05-22 17:06 小小阿飞 阅读(779) 评论(0) 推荐(1)