简介 算法导论第四章介绍过使用分治法求最大子数组问题,其基本思想就是把一个数组分成三部分,a[0:n/2],a[n/2+1:n],a[j:k] (其中0 include "gtest/gtest.h" using namespace std; / 功能函数 @author Stone version ...
分类:
编程语言 时间:
2018-03-29 22:36:48
阅读次数:
356
本次笔记学习自算法导论 FFT核心:系数表示→(单位复数根)点值表示→(插值)系数表示 关于单位复数根 n次单位复数根$ω$为满足$ω^n=1$的复数 n次单位复数根恰好有n个,表示为$ω_k,k=0,1,...n 1$ 由欧拉公式$e^{iθ}=cosΘ+isinΘ$,得$ω_k=e^{i2πk/ ...
分类:
其他好文 时间:
2018-03-27 10:25:04
阅读次数:
142
什么是基础呢? 就是要把我们大学所学的离散数学,算法与数据结构,操作系统,计算机体系结构,编译原理等课程学好。对计算机的体系,CPU本身,操作系统内核,系统平台,面向对象编程,程序的性能等要有深层次的掌握。要编写出优秀的代码同样要扎实的基础,如果数据结构和算法学的不好,怎么对程序的性能进行优化,怎样 ...
分类:
编程语言 时间:
2018-03-25 10:38:24
阅读次数:
245
输入数据的结构 在实际中,待排序的数很少是孤立的值,它们通常是一个称为记录的数据集的一部分。每个记录有一个关键字key,它是待排序的值。记录的其他数据称为卫星数据,即它们通常以key为中心传送。在一个排序的算法中,当交换关键字时,卫星数据也必须交换。如果记录都很大,我们可以交换一组指向各个记录的指针 ...
分类:
编程语言 时间:
2018-03-25 10:35:11
阅读次数:
206
问题:请给出一个运行时间为O(n lgn)的算法,使之能在给定一个由n个整数构成的集合S和另一个整数x时, 判断S中是否存在有两个其和等于x的元素。 题目思路:先将集合S用归并排序排好序,因为归并排序的运行时间为O(n lgn);设置low和 high两个标志指向集合的两端,将两个点相加与x比较,如 ...
分类:
编程语言 时间:
2018-03-07 21:39:58
阅读次数:
149
16.1 16.1 1 ~~~c int c[n+1][n+1]; int b[n+1][n+1]; for (int i = 0; i = f[i] && e[k] c[i][j]) { b[i][j] = k; c[i][j] = res; } } return; } ~~~ 将递归式改为迭代式 ...
分类:
编程语言 时间:
2018-03-01 23:26:10
阅读次数:
234
15.1 15.1 1 证明: ? T(n) = 1+$\sum_0^{n 1}T(j)$ ? 令S(n) = $\sum_0^nT(j)$ ? 则S(n) S(n 1) = 1 + S(n 1) ? S(n) = $2^{n+1}$ 1 ? T(n) = $2^n$ 15.1 2 | 长度i | ...
分类:
编程语言 时间:
2018-03-01 23:23:07
阅读次数:
206
《算法导论》读书笔记之第12章 二叉查找树 摘要: 本章介绍了二叉查找树的概念及操作。主要内容包括二叉查找树的性质,如何在二叉查找树中查找最大值、最小值和给定的值,如何找出某一个元素的前驱和后继,如何在二叉查找树中进行插入和删除操作。在二叉查找树上执行这些基本操作的时间与树的高度成正比,一棵随机构造 ...
分类:
编程语言 时间:
2018-02-25 14:41:58
阅读次数:
231
《算法导论》读书笔记之第1章 算法在计算机中的作用 本章是本书的开篇,介绍了什么是算法,为什么要学习算法,算法在计算机中的地位及作用。 算法(algorithm)简单来说就是定义良好的计算机过程,它取一个或一组值作为输入,并产生出一个或一组值作为输出。即算法就是一系列的计算步骤,用来将输入数据转换成 ...
分类:
编程语言 时间:
2018-02-25 14:41:38
阅读次数:
236
《算法导论》读书笔记之第16章 贪心算法—活动选择问题 前言:贪心算法也是用来解决最优化问题,将一个问题分成子问题,在现在子问题最优解的时,选择当前看起来是最优的解,期望通过所做的局部最优选择来产生一个全局最优解。书中先从活动选择问题来引入贪心算法,分别采用动态规划方法和贪心算法进行分析。本篇笔记给 ...
分类:
编程语言 时间:
2018-02-25 14:41:10
阅读次数:
309