码迷,mamicode.com
首页 >  
搜索关键字:分治算法    ( 353个结果
五种常用的算法设计技巧之二:分治算法
一,介绍 分治算法主要包含两个步骤:分、治。分,就是递归地将原问题分解成小问题;治则是:在解决了各个小问题之后(各个击破之后)合并小问题的解,从而得到整个问题的解 二,分治递归表达式 分治算法一般都可以写出一个递归表达式;比如经典的归并排序的递归表达式:T(N)=2T(N/2)+O(N) T(N)代 ...
分类:编程语言   时间:2016-05-29 10:55:46    阅读次数:249
整理小朋友在noi.openjudge上的作业(4)
第四章(含小学奥数)计97题,已完成8题 4.1 算法之排序和算法性能 4.2 算法之数论 4.3 算法之图论 4.4 算法之分治 4.5 算法之动态规划 4.6算法之贪心 4.7算法之搜索 小学奥数 ...
分类:其他好文   时间:2016-05-25 12:47:10    阅读次数:373
10个小球用天平找出重量不同的那个
上周被人出了一道算法题目,题目的内容是:有10个小球,外观一样,其中1个小球和其他9个小球重量不一样,请使用天平以最少的次数找出这个重量不一样的小球。 解题思路:其实这是一个很典型使用分治算法的例子,由于不知道这个特别的小球是比其他球重还是轻,所以我们不能简单的使用二分法去求解,所以我选择3为模。 ...
分类:其他好文   时间:2016-05-24 13:26:18    阅读次数:174
合并排序二
该算法是采用分治算法的典型应用,步骤如下: 1. 申请两个与已经排序序列相同大小的空间,并将两个序列拷贝其中 2. 设定最初位置分别为两个已经拷贝排序序列的起始位置,比较两个序列元素的大小,依次选择相对小的元素放到原始序列; 3.重复2直到某一拷贝序列全部放入原始序列,将另一个序列剩下的所有元素直接 ...
分类:编程语言   时间:2016-05-18 15:57:45    阅读次数:180
动态规划01-钢条切割问题
动态规划(dynamic programming)与分治算法相似,都是通过组合子问题的解来求解原问题。区别在于,分治算法是将原问题划分为互不相交的子问题,递归求解子问题,再把它们的解组合起来,求出原问题的解;动态规划应用于子问题重叠的情况,即不同的子问题具有公共的子问题(子问题的求解是递归进行的,将其划分为更小的子子问题),在这种情况下,分治算法会反复求解那些公共的子问题,而动态规划算法对每个子子问...
分类:其他好文   时间:2016-05-12 20:27:30    阅读次数:140
合并排序
合并排序,顾名思义,就是通过将两个有序的序列合并为一个大的有序的序列的方式来实现排序。合并排序是一种典型的分治算法:首先将序列分为两部分,然后对每一部分进行循环递归的排序,然后逐个将结果进行合并。 合并排序最大的优点是它的时间复杂度为O(nlgn),这个是我们之前的选择排序和插入排序所达不到的。他还 ...
分类:编程语言   时间:2016-04-17 16:09:18    阅读次数:353
【算法】5 传说中的快排是如何的
什么是高速排序 高速排序简单介绍 高速排序(英文名:Quicksort,有时候也叫做划分交换排序)是一个高效的排序算法,由Tony Hoare在1959年发明(1961年发布)。当情况良好时。它能够比主要竞争对手的归并排序和堆排序快上大约两三倍。这是一个分治算法,并且它就在原地排序。 所谓原地排序, ...
分类:编程语言   时间:2016-04-16 22:41:55    阅读次数:399
基础算法思想(二)
分治算法 使用分治法设计程序时,一般可按以下步骤进行: (1)分解:将要求解的问题划分成若干规模较小的同类问题 (2)求解:当子问题划分得足够小时,用较简单的方法解决 (3)合并:按求解问题的要求,将子问题的解逐层合并,即可构成最终的解 分治算法实例(乒乓球比赛赛程安排): 我们要给八个人安排赛程 ...
分类:编程语言   时间:2016-03-03 19:12:33    阅读次数:177
经典算法学习——归并排序
归并排序算法采用的是分治算法,即把两个或两个以上的有序表合并成一个新的有序表的过程。首先把待排序的序列分成若干个子序列,每个子序列都是有序的,然后把有序子序列合并成整体有序序列,这个过程也称为2路归并。实现代码已经上传至: https://github.com/chenyufeng1991/MergeSort  。       基本思想如下:将待排序序列R[0...n-1]看成是n个长度为1的有序...
分类:编程语言   时间:2016-02-16 20:48:45    阅读次数:195
线段树入门整理、
线段树(interval tree) 是把区间逐次二分得到的一树状结构,它反映了包括归并排序在内的很多分治算法的问题求解方式。 【声明】 1 #include<cstdio> 2 #include<cmath> 3 const int MAXNODE = 2097152; 4 const int M
分类:其他好文   时间:2016-02-14 11:41:10    阅读次数:218
353条   上一页 1 ... 19 20 21 22 23 ... 36 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!