算法和数据结构概述
Posted G_whang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法和数据结构概述相关的知识,希望对你有一定的参考价值。
算法概述
什么是算法?
算法,对应的英文单词是algorithm,这是一个很古老的概念,最早来自数学领域。在数学领域里,算法是用于解决某一类问题的公式和思想。
算法的定义
解决问题的思路,是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
算法的特性
- 输入:可以有0到多个数据
- 输出:每一个算法最少要有一个输出
- 有穷性:再有限的时间内执行出结果
- 确定性:对结果的确定性,一个输入对应一个输出
- 可行性:算法可以解决实际问题
算法的基本要求
- 正确性:正确的解决问题
- 可读性:编写的算法可以让其他人可以看懂
- 健壮性:算法支撑的计算能力
算法有高效的,也有拙劣的,衡量算法好坏的重要标准有两个
- 时间复杂度
- 空间复杂度
算法的应用领域非常广泛,例如
1.运算
这个运算不仅仅是数学的运算那么简单,还需要考虑多种情况的发生,比如:求两个数的最大公约数,要做到效率的极致,的确需要认真思考一下,或者两个超级大的整数计算求和,按照正常情况计算,可能会导致变量溢出等等。。。
2.查找
当你使用浏览器查询某个关键信息时候,或者在数据库中执行一条SQL的时候,你有考虑过数据信息是怎么被查出来的吗?
3.排序
排序算法是实现诸多复杂程序的基石,比如6.18购买商品的时候,我们希望商品价格按照从低到高排序
4.最优决策
有些算法可以帮助我们找到最优决策,比如,汉诺塔,找出最快移动的步骤
5.面试
面试过程中衡量一个程序员基础,和程序员的逻辑思维能力
数据结构
什么是数据结构?
数据结构是指相互之间存在这一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成,其使用目的是为了高效的访问和修改数据
数据结构都有哪些组成方式呢?
1.线性结构
线性结构是最简单的数据结构,包括数组(顺序性结构)、链表(链式结构)以及由他们衍生出来的栈和队列,哈希表
2.树
树是相对复杂的数据结构,其中比较有代表性的是二叉树,由他衍生出了二叉堆之类的数据结构
3.图
图是为复杂的数据结构,因为图中会呈现出多对多的关联关系
以上是关于算法和数据结构概述的主要内容,如果未能解决你的问题,请参考以下文章