算法
zjx0126
这个作者很懒,什么都没留下…
展开
-
C++数据结构学习笔记(一)
计算机科学 = 计算科学?计算机只是工具,计算才是最终的目的。(即如何有效和高效的计算) by Dijkstra 计算 = 信息处理借助某种工具,遵循一定的规则,以明确而机械的形式进行计算模型 = 计算机 = 信息处理工具实例1Hailstone(n) 序列具有以下性质{1} n{n}U Hailstones(n/2) n偶{n}U原创 2018-01-01 18:28:55 · 238 阅读 · 0 评论 -
C++数据结构学习笔记(三)
Back-of-The-Envelope Calculation封底估算,用于复杂度的分析减而治之sum(int A[],int n){ return (n<1)? 0: sum(A,n-1)+A[n-1];}T(n)=T(n-1)+O(1)T(0)=O(1)故T(n)=O(n)数组倒置void reverse(int * A,int lo,原创 2018-01-02 20:28:10 · 256 阅读 · 0 评论 -
C++数据结构学习笔记(二)
RAM模型RAM:Random Access Machine寄存器顺序编号,总数没有限制R[0],R[1],R[2]...每一项操作仅需要常数时间R[i]R[i]IF R[i] = 0 GOTO 1 IF R[I]>0 GOTO 1 GOTO 1 STOP与TM模型一样,RAM模型也是一般计算工具的简化与抽象T(n) = 算法为求解规模为n的问题,所需要执行的基本原创 2018-01-02 12:19:59 · 225 阅读 · 0 评论 -
C++数据结构学习笔记(四)
递归+分治,求一个数列的最大值和最小值#include #include using namespace std;int max2(int A[], int lo, int hi, int &x1, int &x2){ if (lo + 2 == hi) { if (A[lo]<A[hi - 1]) { x1 = A[hi - 1]; x2 = A[lo];原创 2018-01-03 19:15:53 · 161 阅读 · 0 评论 -
C++数据结构学习笔记(六)
元素的访问1V.get(r)V.get(r,e)接口2重载[]templateT& Vector::operator[](Rank r) const{return _elem[r]};插入template Rank Vector::insert(Rank r,T const & e){expand();for(int i = _s原创 2018-01-22 14:01:14 · 287 阅读 · 0 评论 -
C++数据结构学习笔记(五)
从数组到向量向量是数组的抽象和泛化,由一组元素按照线性次序封装而成各元素[0,n)内的秩一一对应 //循秩访问元素的类型不限于基本类型操作,管理更加简化,统一和安全可以更为便捷的参与复杂数据结构的定制与实现向量ADT接口size() 报告当前规模get(r) 获取秩为r的元素put(r,e) 用e替换秩为r元素的数值insert(r,e) e作为秩为原创 2018-01-06 17:24:22 · 312 阅读 · 0 评论