分治策略 1)将问题分解为规模较小的子问题,子问题与原问题同质 2)迭代或者递归解决每个子问题 3)将子问题的解综合得到原问题解 例子:二分查找Binary Search 1 BinarySearch(T,l,r,x) 2 //输入数组T,下标从l到r,查找数x 3 //输出j,若x在T中输出下标, ...
分类:
编程语言 时间:
2020-03-16 13:17:50
阅读次数:
61
一.查找 1.顺序查找(线性查找)O(n) 2.二分查找 O(logn) 二.排序 lowB三人组 1.冒泡排序 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现他们的排序与排序要求相反时,就将他们 ...
分类:
编程语言 时间:
2020-03-15 15:15:34
阅读次数:
94
lower_bound( ) 与 upper_bound( ) 这两个函数是用 二分查找 的方式,在一个排好序的 数组 中进行查找,返回值是地址。 如果数组为从小到大的顺序排列的话: lower_bound :lower_bound( begin,end,num),在begin到end 1之间,二分 ...
分类:
其他好文 时间:
2020-03-14 20:16:36
阅读次数:
52
给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。 说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法的时间复杂度应该为 O(n ...
分类:
其他好文 时间:
2020-03-14 20:11:37
阅读次数:
57
题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 具体思路: 考虑二分法。 方法一:直接调用函数 python中的bisect库提供二分查找和插入。其中bisect_left()时,插入点 ...
分类:
其他好文 时间:
2020-03-14 16:52:51
阅读次数:
60
1 //分治思想:将大问题拆成小问题逐一解决 2 //折半查找法:不断缩小一半查找的范围,知道达到目的,效率较高。 详情见:https://fishc.com.cn/thread-27964-1-1.html 3 4 //折半查找法(迭代) 5 #include<stdio.h> 6 7 int s ...
分类:
其他好文 时间:
2020-03-14 12:37:54
阅读次数:
36
0.引入 1.插入排序 每次都认为前面的已排好序,将当前的数与其前面的数进行比较,如果前面的数大于它,则交换位置,不断交换直到前面的数比它小 2.折半查找 在有序数组里,跳跃式递归查找。 问题描述:求一个n个数列表的第k个最小元素。(无序情况,有折半思想和快排思想) 利用减治法的思想,找到一个基准数 ...
分类:
编程语言 时间:
2020-03-14 10:52:07
阅读次数:
53
二分查找 二分查找的前提 目标函数单调性(单调递增或者递减) 存在上下界(bounded) 能够通过索引访问(index accessible) 代码模块 ...
分类:
其他好文 时间:
2020-03-14 00:47:26
阅读次数:
54
04-树5 Root of AVL Tree (25分) An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any node dif ...
分类:
其他好文 时间:
2020-03-13 19:01:17
阅读次数:
77
阅读目录 " 楔子" " 初识递归" " 再谈递归" " 递归函数与三级菜单" " 递归函数与二分查找算法" 楔子 在讲今天的内容之前,我们先来讲一个故事,讲的什么呢?从前有座山,山里有座庙,庙里有个老和尚讲故事,讲的什么呢?从前有座山,山里有座庙,庙里有个老和尚讲故事,讲的什么呢?从前有座山,山里 ...
分类:
其他好文 时间:
2020-03-12 18:57:44
阅读次数:
57