数据结构与算法之入门基础

概念

数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合用计算机存储、组织数据的方式。数据结构分别为逻辑结构、(存储)物理结构和数据的运算个部分。

 

常见的数据结构:

算法(Algorithm):对特定问题求解步骤的一种描述,是旨在解决特定问题的有限指令序列。

算法的5个特性:

有穷性,是指算法在执行有限的步骤之后,自动结束而不是出现无限循环,并且每一个步骤在可接受的时间内完成。

确定性,是指算法执行的每一步骤在一定条件下只有一条执行路径,也就是相同输入只能有一个唯一的输出结果。

可行性,是指算法每一步骤都必须可行,能够通过有限的执行次数完成。

输入,是指算法具有零个或多个输入。

输出,是指算法至少有一个或多个输出。

算法两个主要方面:

正确:算法功能与问题要求一致?

成本:运行时间 + 所需存储空间 =》 如何度量? + 如何比较?

算法复杂度分析的动机

如何度量:

设计的这个算法如何?跑得是不是足够快?

随着问题规模的增长会怎样变化了?

如何比较?

同一个问题有多种不同的算法,如何判断其优劣了?

 

时间复杂度:评估执行程序所需的时间。可以估算出程序对处理器的使用程度。
空间复杂度:评估执行程序所需的存储空间。可以估算出程序对计算机内存的使用程度。

一般情况下,随着规模n的增大,次数T(n)的增长较慢的算法为最优算法。常见时间复杂度从小到大依次排列:O(1) < O(log2n) < O(n) < O(n²)<O(n³) ····<O(n!)

 

算法与数据结构的关系: 数据结构 + 算法 = 程序 ;数据结构是算法的基石 ;算法围绕数据结构进行操作。

最常用的数据结构和算法:

数组、链表、栈、队列、散列表、二叉树、堆、并查集、 Trie 树、图
递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、基本图算法
 

 

https://www.runoob.com/w3cnote_genre/algorithm

https://www.runoob.com/w3cnote/ten-sorting-algorithm.html

 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值