【数据结构与算法】
文章平均质量分 62
赵一弘
这个作者很懒,什么都没留下…
展开
-
统计正因子个数
学习要点:1 使用long long 这种64位数据类型。取值范围是-10^19 ~ 10^19 ( int 取值范围是-2*10^9 ~ 2*10^9) 输出方法:%lld2 只枚举到sqrt(l) ,因为i若是l的因子则l/i也是因子。因此最终结果乘2、#include #include using namespace std;int main(){ long long原创 2013-04-07 18:04:39 · 685 阅读 · 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 · 528 阅读 · 0 评论 -
数据结构学习笔记(五) 二分法查找(已排序数据中的查找方法)
二分法:(分治+递归) binary search:用于在一组已排序数据中查找需要的值的位置在一组已排序数据如果数值个数为0 返回空否则如果中间的是目标数据 成功 返回该指针否则 如果目标数据比中间小返回在左串中查找的结果否则在右串中查找的结果#include using namespace std;class Person{ st原创 2013-05-11 09:23:51 · 698 阅读 · 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 · 590 阅读 · 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 · 515 阅读 · 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 · 738 阅读 · 0 评论 -
数据结构学习笔记(一) 链表及其基本操作
学习要点:1 零初始化 d = T() 如果T是基本数据类型 则表示0 如果T是自定义数据类型 则使用无参构造函数2 内部类型成员:定义一个类型,受到访问权限影响,一般外部不能访问3 内部成员指向动态内存时 需要重写析构 赋值 拷贝函数4 指针的引用 Node*&p 表示指针本身 可以用来改变指针的指向.一般在返回值和形参中出现这个02list.h原创 2013-04-29 19:40:53 · 812 阅读 · 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 · 168 阅读 · 0 评论 -
求阶乘之和的后六位
学习要点:1 如何避免数据溢出2 如何使用C语言的输入输出重定向3 如何在自己使用时使用重定向,提交时重定向无效4 -O1的效果,让未定义直接去使用的变量赋值05 在linux下计算程序运行时间#include #include #include using namespace std;int main(){ timeval tv_start,t原创 2013-04-07 17:58:28 · 789 阅读 · 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 · 462 阅读 · 0 评论