【数据结构与算法】
文章平均质量分 62
赵一弘
这个作者很懒,什么都没留下…
展开
-
统计正因子个数
学习要点: 1 使用long long 这种64位数据类型。取值范围是-10^19 ~ 10^19 ( int 取值范围是-2*10^9 ~ 2*10^9) 输出方法:%lld 2 只枚举到sqrt(l) ,因为i若是l的因子则l/i也是因子。因此最终结果乘2、 #include #include using namespace std; int main() { long long原创 2013-04-07 18:04:39 · 654 阅读 · 0 评论 -
数据结构学习笔记(六) 排序方法:冒泡 插入 选择 快速
冒泡排序: 所有相邻两个元素比较,若左边>左边,则交换 若本轮发生了交换,则重复上一步 O(N^2) #include #include using namespace std; void sort(int *a,int n) { bool changed = false; do { changed = false; for(int i =1; i <= n; i++原创 2013-05-11 09:43:14 · 515 阅读 · 0 评论 -
数据结构学习笔记(五) 二分法查找(已排序数据中的查找方法)
二分法:(分治+递归) binary search: 用于在一组已排序数据中查找需要的值的位置 在一组已排序数据 如果数值个数为0 返回空 否则 如果中间的是目标数据 成功 返回该指针 否则 如果目标数据比中间小 返回在左串中查找的结果 否则在右串中查找的结果 #include using namespace std; class Person { st原创 2013-05-11 09:23:51 · 679 阅读 · 0 评论 -
数据结构学习笔记(四) 二叉树及其基本操作
二叉树 : 方便查找 搜索速度快 经常需要搜索的数据放入二叉树 #include using namespace std; typedef char T; #include #include class bst //二叉查找树 { struct Node { T data; Node* L; Node* R; //结构也可以写构造函数 Node(con原创 2013-05-11 09:18:43 · 576 阅读 · 0 评论 -
数据结构学习笔记(二) 堆栈及其基本操作
1 数组栈写法 #include #include using namespace std; typedef string T; class Stack { T a[5];//如果是固定的直接写个数组 int cur; public: Stack():cur(0){} //对象没有占用其他资源如打开文件 动态分配内存等 所以不需要析构 void push(const T&)原创 2013-05-07 23:55:55 · 502 阅读 · 0 评论 -
数据结构学习笔记(三) 队列及其基本操作
1 数组队列 #include using namespace std; const int MAX = 5; class Queue { int a[MAX]; int b;// 开始位置 int n; //数量 public: Queue():b(0),n(0){} Queue& push(const T& d) { if(n==MAX) throw "队列满";原创 2013-05-08 00:05:29 · 722 阅读 · 0 评论 -
数据结构学习笔记(一) 链表及其基本操作
学习要点: 1 零初始化 d = T() 如果T是基本数据类型 则表示0 如果T是自定义数据类型 则使用无参构造函数 2 内部类型成员: 定义一个类型,受到访问权限影响,一般外部不能访问 3 内部成员指向动态内存时 需要重写析构 赋值 拷贝函数 4 指针的引用 Node*&p 表示指针本身 可以用来改变指针的指向. 一般在返回值和形参中出现这个 02list.h原创 2013-04-29 19:40:53 · 771 阅读 · 1 评论 -
数据结构学习笔记(一) 链表以及基本操作
写完贴在这里 做 #include using namespace std; class List { //内部类型成员 typedef int T; //内部类型成员 受访问权限影响 struct Node { T data; Node* next; //一旦你写了构造函数 就不能再以前的方法初始化 // d = T() 零初始化 基本数据类型表示0原创 2013-04-29 18:42:44 · 153 阅读 · 0 评论 -
求阶乘之和的后六位
学习要点: 1 如何避免数据溢出 2 如何使用C语言的输入输出重定向 3 如何在自己使用时使用重定向,提交时重定向无效 4 -O1的效果,让未定义直接去使用的变量赋值0 5 在linux下计算程序运行时间 #include #include #include using namespace std; int main() { timeval tv_start,t原创 2013-04-07 17:58:28 · 772 阅读 · 0 评论 -
KMP算法 -- 字符串模式匹配算法
KMP算法 #include #include using namespace std; void getNext( char *T,int *next) { int i,j; i=1; j=0; next[1]=0; while(i<strlen(T)) { if(j==0 || T[i]==T[j]) { i++; j++;原创 2014-07-13 10:14:25 · 450 阅读 · 0 评论