数据结构(Course)1:基础知识

本文探讨了数据结构(如线性表、树和图)与算法(包括穷举法、回溯法、搜索等)的基本概念,并通过二分查找算法实例展示了算法的设计与实现过程。同时介绍了算法效率评估的大O表示法。

一、概论

1、逻辑+存储+算法

逻辑:线性表(表,栈,队列,串)+非线性结构(树+图)

存储:顺序、链接、索引、散列

抽象数据类型ADT<数据对象D,数据操作P>

先定义逻辑结构(数据对象及其关系),再定义运算(数据操作)。

2、算法特性

 穷举法(顺序找K值)、回溯、搜索(树和图遍历)、递归分治(二分找K值、快速排序)、贪心法、动态规划(最短路Floyd算法)

//二分法找K值
template <class Type> int Binsearch(vector<Item<Type>*>& dataList, int length, Type k)
{
	int low = 1, high = length, mid;
	while (low <= high)
	{
		mid = (low + high) / 2;
		if (k < dataList[mid]->getKey())
			high = mid - 1;//右缩检索空间
		else if (k>dataList[mid] - > getKey())
			low = mid + 1;//左缩检索空间
		else return mid;
	}
	return 0;
}

3、算法效率与度量

加法规则:f1(n)+f2(n)=O(max(f1,f2))  顺序结构,if,switch

乘法规则: f1(n)*f2(n)=O(f1*f2) for while 结构

常数阶;二分法:对数阶;for循环:线性阶;两个for循环:平方阶

推到大O阶方法:

1、常数1取代所有加法常数

2、只保留最高阶

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值