数据结构(C++语言版)知识点总结1

0.前言

学习目的:学习数据结构,就是要学会高效地利用计算机

(1)有效地存储、组织、传递和转换数据

(2)掌握各类数据结构功能、表示、实现和基本操作接口

(3)理解各类(基本)算法与不同数据结构之间的内在联系

(4)了解各类数据结构适用的应用环境

(5)灵活地选用各类(基本)算法及对应的数据结构,解决实际问题


内容纵览:

(1)各数据结构的ADT接口及其不同实现

序列(向量、列表、栈、队列),树及搜索树(AVL树、伸展树、红黑树、B-树、kd-树),优先队列(堆)、字典(散列表、跳转表),图的算法与应用

(2)构造有效算法模块的常用技巧

顺序和二分查找,选取与排序,遍历,模式匹配,散列,几何查找

(3)算法设计的典型策略与模式

迭代、贪心、递归、分治、减治、试探—剪枝—回溯、动态规划

(4)复杂度分析的基本方法

渐进分析与相关记号、递推关系、递归跟踪、分摊分析、后向分析

1.算法概念

**计算=信息处理(借助某种工具,遵照一定规则,以明确而机械的形式进行)

**计算模型=计算机=信息处理工具

**所谓算法,即特定计算模型下,旨在解决特定问题的指令序列

           输入     待处理的信息(问题)

           输出     经处理的信息(答案)

         正确性   的确可以解决指定的问题

         确定性   任一算法都可以描述为一个由基本操作组成的序列

         可行性   每一基本操作都可实现,且在常数时间内完成

         有穷性   对于任何操作,经有穷次基本操作,都可以得到输出

2.Hailstone冰雹序列(C++实现)

#include<iostream>
using std::cout;
using std::cin;
using std::endl;
int hailstone(int n);

int main()
{
	int n;
	cout << "Please enter the number: ";
	cin >> n;
	int length = hailstone(n);
	cout << "Please display the length: " << length << endl;
	return 0;
}

int hailstone(int n)     //计算序列Hailstone(n)的长度
{
	int length = 1;      //从1开始,以下按定义逐步递推,并累计步数,直至n=1
	while (1 < n)
	{
		n % 2 ? n = 3 * n + 1 : n /= 2;
		length++;
	}
	return length;
}

3.计算模型—图灵机模型

   

   图灵机实例:

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值