本文主要是介绍数据结构(Course)1:基础知识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、概论
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、只保留最高阶
这篇关于数据结构(Course)1:基础知识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!