
算法
算法笔记
Danan.
学一点写一点
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法:查找序列最小k元素(分治法)
问题: 给定含有n元素的无序序列,求这个序列中第k(1<k<n)小的元素 求解 :无序序列在a[0…n-1],若将a递增排序,则第k小的元素为a[k-1] ❗a[s…t]既可表示初始序列,也可表示划分后的子序列 ❗第k小元素下标为k-1 有三种情况: 若 k-1= i, a[i]即为所求,返回a[i]。 若k-1<i , 第k小元素在a[s…i-1]子序列。 若*k-1>...原创 2020-04-09 17:52:46 · 2487 阅读 · 2 评论 -
算法:查找两个序列的中位数(分治法)
问题:长度为n的有序序列(升序),求两个有序序列中的中位数 解法: 当n为奇数时,中位数出现在m=(s+t)/2 当n为偶数时,有上中位m=[(s+t)/2]+1 有下中位m=(s+t)/2 为了简单,仅考虑中位数为m=(s+t)/2 当a序列中位数小于b序列中位数,即a[m1]<b[m1] 舍弃a前半部分b后半部分 ⏩取a后b前⏪ 当a序列中位数大于b序列中位数,即a[m1]>b[...原创 2020-04-10 15:38:18 · 3679 阅读 · 0 评论