数据结构与算法介绍

简介: 数据结构与算法几乎存在于程序开发中的所有地方!!!例如:插入排序,快速排序,堆排序,冒泡排序等...

数据结构与算法介绍


数据结构与算法介绍


为什么要学习数据结构和算法


数据结构与算法几乎存在于程序开发中的所有地方!!!


例如:插入排序,快速排序,堆排序,冒泡排序等...


算法的五大特征


有穷性


算法的有穷性是指算法必须能在执行有限个步骤之后终止。


确切性


算法的每一步骤必须有确切的定义。


输入项


一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件。


输出项


一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的。


可行性


算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步骤,即每个计算步骤都可以在有限时间内完成(也称之为有效性)。


算法的时间复杂度


算法的时间复杂性又称算法的时间复杂度,算法的时间复杂度从本质上说是一个函数,它表示一个算法的运行时间,时间复杂度用大O符号表示,一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。


算法的空间复杂度


算法的空间复杂度是指一个算法在运行的过程中占用临时的内存的量度,


一个算法的优劣主要从算法的执行时间和所需要占用的存储空间两个方面衡量~~~

相关文章
|
3月前
|
存储 算法 调度
数据结构与算法-栈篇
数据结构与算法-栈篇
24 3
|
11月前
|
存储 算法 编译器
数据结构与算法之一
数据结构与算法之一
37 0
|
存储 算法 Java
数据结构与算法:8种算法经典问题
前言 本文主要讲解8种算法经典问题。
149 0
|
存储 算法
数据结构与算法总纲
数据结构与算法总纲
193 0
数据结构与算法总纲
|
算法 JavaScript 前端开发
数据结构与算法(一):准备篇
数据结构与算法(一):准备篇
149 0
数据结构与算法(一):准备篇
|
算法
数据结构与算法——线性排序
前面已经说完了几种非线性排序,它们分别是时间复杂度为 O(n2) 、适合小规模数据的冒泡排序、选择排序、插入排序,和应用较广泛的时间复杂度为 O(nlogn) 的希尔排序、归并排序、快速排序。其实这几种排序都有一个特性,那就是它们都是基于数据的比较和移动,而今天介绍的这几种线性排序,他们的时间复杂度都是 O(n) ,因为不涉及到数据的比较和移动。
129 0
数据结构与算法——线性排序
|
存储 机器学习/深度学习 人工智能
数据结构与算法《褚论》
数据结构与算法《褚论》
131 0
|
存储 人工智能 算法
数据结构与算法(中)
树的深度优先搜索
184 0