![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
饭fan有引力
低调低调~
展开
-
算法的时间复杂度
时间复杂度:如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n),它是n的某一函数,T(n)称为这一算法的“时间复杂度”。 渐近时间复杂度:当输入量n逐渐加大时,时间复杂性的极限情形称为算法的“渐近时间复杂度”。 当我们评价一个算法的时间性能时,主要标准就是算法的渐近时间复杂度,因此,在算法分析时,往往对两者不予区分,经常是将渐近时间复杂度T(n)=O(f(n))简称为时间复杂度,其中的f(n)一般是算法中频度最大的语句频度。 此外,算法中语句的频度不仅与问题规模原创 2010-07-16 22:11:00 · 1070 阅读 · 1 评论 -
顺序表的实现
#include using namespace std;template class SeqList{private: T *data; //存放数组 int maxSize; //最大可容纳项数 int last; //当前的最后位置 void reSize(int newSize); //改变data数组空间大小public: bool getData(int i, SeqList &L, int &x); //取第i个表项的值 int Leng原创 2010-11-10 22:53:00 · 1517 阅读 · 0 评论 -
链表作业
#includeusing namespace std;typedef struct Node{ int data; struct Node *next;}SLNode, *LinkList;int len;void SLLInitiate(SLNode **head) //初始化{ /*如果有内存空间,申请头结点空间并使头指针head指向头结点*/ if((*head=(SLNode *)malloc(sizeof(SLNode)))==NULL)原创 2010-10-09 21:26:00 · 912 阅读 · 0 评论 -
算法的时间复杂度
时间复杂度:如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n),它是n的某一函数,T(n)称为这一算法的“时间复杂度”。 渐近时间复杂度:当输入量n逐渐加大时,时间复杂性的极限情形称为算法的“渐近时间复杂度”。 当我们评价一个算法的时间性能时,主要标准就是算法的渐近时间复杂度,因此,在算法分析时,往往对两者不予区分,经常是将渐近时间复杂度T(n)=O(f(n))简称为时间复杂度,其中的f(n)一般是算法中频度最大的语句频度。 此外,算法中语句的频度不仅与问题规模有关,还与输原创 2010-09-15 22:50:00 · 994 阅读 · 0 评论 -
assert.h
assert.h常用于防御式编程。[1]断言(Assertions) 一个断言通常是一个例程(routines)或者一个宏(marcos)。每个断言通常含有两个参数:一个布尔表示式(a boolean expression)和一个消息(a message)。一个布尔表达式的反面表示了一个错误。C 标准库提供了一个 assert 宏,它只带有一个参数,用法如下:assert(1 == 0); // 注意 boolean expression 不要加引号 使用 assert 宏,需要包含头文件 casser原创 2010-07-19 09:30:00 · 777 阅读 · 0 评论 -
单链表的模板类
////////////////////////////带附加头结点的单链表的类定义///////////////////////////////////////template //定义在头文件"LinkedList.h"中struct LinkNode //链表结点类的定义{ T data; //数据域 LinkNode *link; //链指针域 LinkNode(LinkNode *ptr = NULL)原创 2010-07-18 08:19:00 · 2662 阅读 · 0 评论 -
单链表中的插入与删除
////////////////////////////单链表的插入算法///////////////////////////////////////bool List::Insert(int i, int& x){ //将新元素x插入到第i个结点之后。i从1开始,i=0表示插入到第一个结点之前。 if(first==NULL || i==0) { //插入空表或非空表第一个结点之前 LinkNode *newNode = new LinkNode(x); //建立一个新原创 2010-07-17 23:37:00 · 1965 阅读 · 0 评论 -
顺序表的类定义及其操作
//////////////////////////////////////////////线性表的抽象基类///////////////////////////////////////////////////////enum bool {false, true};templateclass LinearList{public: LinearList(); //构造函数 ~LinearList(); //析构函数 virtual int原创 2010-07-17 15:08:00 · 5540 阅读 · 1 评论 -
用回溯法求解0—1背包问题,并输出问题的最优解
问题:给定n种物品和一背包。物品i的重量是Wi,其价值为Vi,背包的容量是c,问应如何选择装入背包中的物品,使得装入背包中物品的总价值最大。0—1背包问题是一个子集选取问题,适合于用子集树表示0—1背包问题的解空间。在搜索解空间树是,只要其左儿子节点是一个可行结点,搜索就进入左子树,在右子树中有可能包含最优解是才进入右子树搜索。否则将右子树剪去。int c;//背包容量int n;原创 2011-12-12 09:21:48 · 9082 阅读 · 0 评论