Java教程

00数据结构与算法基础

本文主要是介绍00数据结构与算法基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

基础

1.逻辑结构

​ 线性结构

​ 树形结构 : 非线性结构

​ 图形结构:非线性结构

​ 集合结构

2.存储结构

​ 顺序存储

​ 链式存储

3.数据操作

​ 增删改查

4.数据类型与数据结构ADT(DRO)

​ 抽象性

​ 扩展性

### 5.指令序列

​ 输入:有零或多个外部量(参数)作为算法的输入

​ 输出:至少产生一个结果

​ 确定性:组成算法的每条指令清晰,无歧义

​ 有限性:算法每条指令执行次数有效,时间也有限

6.计算机求解步骤

​ 1.问题的理解

​ 2.数据结构涉及

​ 3.算法涉及

​ 4.算法分析

​ 5.程序实现

7.算法复杂度分析

​ 算法的复杂度:时间复杂性 和空间复杂性, 大部分测量性能是通过时间复杂度来算的。 一般都会将时间复杂度和空间复杂度分开来看。

​ 抛开软件和硬件因素,只和问题规模有关。

​ 一个算法花费的时间与算法中语句的执行次数成正比例。

​ T(n) = O(f(n));

#### 1.数组

​ for (int i=0;i < n;i++){}; //时间复杂度 n

2.冒泡排序

​ //时间复杂度 n^2;

4.规定输入

​ 最坏情况下的时间复杂度:

​ 最好情况下的时间复杂度:

​ 平均情况下的时间复杂度:

5.渐进式分析算法复杂度

​ 法规

​ 1.通常认为 n2和n是由较大差异的,而3n2和n^2,n无穷大时,算法差异可以忽略不记

​ 3n^2+ 2:可以看作是n^2, 普通常量值可以不要

​ 2.有指数幂时,低阶指数可以忽略不记

​ 3n^2 + 4n + 2: 可以看作时 n^2 ;

​ 3.算法复杂度比较

Big-O Complexity

8.好的算法

1.正确性

2.可读性

3.健壮性

4.高效性:算法的效率是评价一个算法好坏的最重要的环节

这篇关于00数据结构与算法基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!