Part7. 数据结构与算法
- 一.线性结构
- 1.线性表
- 2.栈和队列
- 二.数组、矩阵、广义表
- 1.数组
- 2.矩阵
- 3.广义表
- 三.树
- 四.图
- 五.查找算法
- 1.顺序查找
- 2.二分查找
- 3.散列表
- 六.排序算法
- 1.插入类排序
- (1)直接插入排序
- (2)希尔排序
- 2.交换类排序
- (1)冒泡排序
- (2)快速排序
- 3.选择类排序
- (1)简单选择排序
- (2)堆排序
- 3.并归排序
- 3.基数排序
- 4.排序算法总结
- 七.算法应用
- 1.分治法
- 2.回溯法
- 3.贪心法
- 4.动态规划法
- 5.综合运用
一.线性结构
1.线性表
2.栈和队列
选D
二.数组、矩阵、广义表
1.数组
答案:a+13x2
2.矩阵
解:带入法,M[1]为A0.0,M[2]为A1.0,M[3]为A1.1以此类推带入排除,最终选A
3.广义表
答:例1:长度为3,深度为2
例2:head(head(tail(LS1)))
三.树
四.图
五.查找算法
1.顺序查找
2.二分查找
3.散列表
六.排序算法
1.插入类排序
(1)直接插入排序
(2)希尔排序
2.交换类排序
(1)冒泡排序
(2)快速排序
3.选择类排序
(1)简单选择排序
(2)堆排序
3.并归排序
3.基数排序
4.排序算法总结
七.算法应用
1.分治法
2.回溯法
3.贪心法
4.动态规划法
5.综合运用
例1
解:首先先做【问题3】5;4;否
然后开始做【问题2】贪心;贪心;O(n^2) ;O(n^2)
最后再做【问题1】j=0;b[j]=b[j]+s[j] ; min=temp; b[m]=b[m]+s[i]
例2
解:首先先做【问题2】分治;T(n)=2T(n/2)+O(n); O(nlog2n);O(n)
再做【问题3】n1+n2
最后做【问题1】k<=r;arr[k]=right[j];begin<end;mergeSort(arr,mid+1,end);