归并排序:归并排序是建立在归并操作上的一种有效的排序算法,该算法是採用分治法(Divide and Conquer)的一个很典型的应用。将已有序的子序列合并,得到全然有序的序列。即先使每一个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 数据结构的学习过程中。我们常常 ...
分类:
编程语言 时间:
2017-06-07 10:14:47
阅读次数:
187
动态规划算法: 基本思想: 动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是 ...
分类:
编程语言 时间:
2017-06-03 22:35:51
阅读次数:
264
说一说归并排序 归并排序:归并排序(英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法,效率为O(n log n)。1945年由约翰·冯·诺伊曼首次提出。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行 ...
分类:
编程语言 时间:
2017-05-29 17:22:32
阅读次数:
157
在一个 2^k * 2^k 个方格组成的棋盘中,若恰有一个方格与其他方格不同。则称该方格为一特殊方格,称该棋盘为一特殊棋盘。显然特殊方格在棋盘上出现的位置有 4^k 种情形。因而对不论什么 k>=0 。有 4^k 种不同的特殊棋盘。下图所看到的的特殊棋盘为 k=2 时 16 个特殊棋盘中的一个。 在 ...
分类:
编程语言 时间:
2017-05-28 22:24:38
阅读次数:
345
--------------------siwuxie095 快速排序法 它的工作原理如下: 它采用了一种分治的策略,利用分治法可将快速排序分为三步: 第一步:在数据集之中,选择一个元素作为 "基准" 第二步:所有小于 "基准" 的元素,都移到 "基准" 的左边;所有大于 "基准" 的元素,都移到 ... ...
分类:
编程语言 时间:
2017-05-28 21:38:56
阅读次数:
229
归并排序(合并排序)的实现。使用分治法用递归来实现排序。 ...
分类:
编程语言 时间:
2017-05-28 12:25:07
阅读次数:
147
1.动态规划的基本思想 动态规划算法通常用于求解具有某种最优性质的问题。其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多 ...
分类:
其他好文 时间:
2017-05-26 17:31:03
阅读次数:
202
近日复习了一些算法知识,小记于此 递归与分治法 直接或间接地调用自身的算法称为递归算法。 递归是算法设计与分析中经常使用的一种技术,描写叙述简单且易于理解。 分治法的设计思想是将一个规模为n难以解决的问题分解为k个规模较小的子问题,这些子问题相互独立且与原问题同样。 递归地解这些子问题,然后将各子问 ...
分类:
编程语言 时间:
2017-05-22 16:56:48
阅读次数:
195
大整数的乘法由于用分治法理解起来有点困难,就采用人的计算方法实现,大整数为string 类型,结果也为string类型。 大整数的除法采用先乘后减的方法,例如: 665/20 首先20*10=200;然后665去减200,通过循环计入减了3次,则结果记入3*10=30;然后20*1=20,上次减了之 ...
分类:
编程语言 时间:
2017-05-21 11:53:43
阅读次数:
231
上篇文章介绍了时间复杂度为O(nlgn)的合并排序,本篇文章介绍时间复杂度同样为O(nlgn)但是排序速度比合并排序更快的快速排序(Quick Sort)。 快速排序是20世纪科技领域的十大算法之一 ,他由C. A. R. Hoare于1960年提出的一种划分交换排序。 快速排序也是一种采用分治法解 ...
分类:
编程语言 时间:
2017-05-11 15:15:40
阅读次数:
314