算法和数据结构
xinmengxiang
这个作者很懒,什么都没留下…
展开
-
动态规划题型总结
三个重要概念:最优子结构、边界、状态转移方程动态规划特征:(1)最优子结构:如果问题的最优解所包含的子问题的解也是最优的,我们就称该问题具有最优子结构性质(即满足最优化原理)。意思就是,总问题包含很多个子问题,而这些子问题的解也是最优的。(2)重叠子问题:子问题重叠性质是指在用递归算法自顶向下对问题进行求解时,每次产生的子问题并不总是新问题,有些子问题会被重复计算多次。动态原创 2017-07-31 18:41:01 · 285 阅读 · 0 评论 -
二分查找
1、基本思想:每次将序列中间值与待查找的元素值作比较,每次将搜索区间缩小一半,直到缩小到一个对象为止。2、二分查找要求:必须顺序存储、 必须按关键码大小有序排序3、实现步骤:对数组进行排序找到序列的中间位置mid = (low+high)/2,low=0,high=array.length-1,比较array[mid]与待查找元素值x的大小如果array[mid]==x,那原创 2017-08-02 17:41:25 · 270 阅读 · 0 评论 -
二路归并排序
交换排序:冒泡排序、快速排序(改进的)1、基本思想:确定一个基准值,将所有元素划分为两个序列,前一序列元素比基准值小,后一序列元素比基准值大,再对两个子序列进行相同操作,每次划分都将确定一个基准值的最终位置。2、标准快排(挖坑法)实现步骤:假设数组为array,将每个序列的 第一个值作为基准值pivot;初始化i,j:i为第一个元素所在位置,j为最后一个元素所在位置,当前坑原创 2017-08-02 17:40:43 · 467 阅读 · 0 评论 -
快速排序
交换排序:冒泡排序、快速排序(改进的)1、基本思想:确定一个基准值,将所有元素划分为两个序列,前一序列元素比基准值小,后一序列元素比基准值大,再对两个子序列进行相同操作,每次划分都将确定一个基准值的最终位置。2、标准快排(挖坑法)实现步骤:假设数组为array,将每个序列的 第一个值作为基准值pivot;初始化i,j:i为第一个元素所在位置,j为最后一个元素所在位置,当前坑原创 2017-08-02 17:38:50 · 263 阅读 · 0 评论