什么是算法 算法有哪些

概念

什么是算法

1+2+3+4+..+n的值是多少
解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作
一个问题可以有多个算法,每种算法都有不同的效率

五个特征

有穷性:可以计算完,不是无限计算
确切性:每一步都是有意义的
输入项:有输入项,比如输出1到100想家
输出项:有结果
可行性:每一步都是正确克制执行的

空间复杂度

计算算法需要消耗的内存空间 记做S(n)=O(f(n))
包括程序代码所占用的空间,输入数据作占用的空间和辅助变量所占用的空间这三方面
计算嗯哼表示方式和时间复杂度类似,一般用于复杂度的渐进性来表示
用空间换取时间
冒泡排序的元素交换,空间复杂度O(1)

时间复杂度

执行算法所需要的计算工作量,一般来说,计算机算法是问题规模N的函数f(n)
算法的时间复杂度因此被记做T(n)=O(f(n))

算法评估

算法分析的目的是在于选择合适的算法和改进算法
一个算法的评价主要是从时间复杂度和空间复杂度来考虑的

查找算法

二分法:从数组的中间元素开始,如果中间元素正好是要查找的元素,搜索结束,如果某一个特定的元素大于或小于中间元素,则在数组中大于或小于中间元素的那一边中查找,而且从中间开始比较,如果某一步骤数组为空,代表找不到
顺序查找:按照一定的顺序检查数组中的每一个元素,找到找到特定的值为止

排序算法

冒泡排序:两两相邻的数进行比较,如果反序就交换,否则不交换
直接插入排序:从无序表中取出第一个元素,把他插入有序表中合适的位置,时有序表然有序
希尔排序:把待排序的数据增量分成几个子序列,对子序列进行插入排序,直到增量为1,直接插入排序;增量的排序,一般是数组的长度的一般,在变为原来增量的一半,直到增量为1
选择排序:每次从待排序的原诵读中华选出最小(或者最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完
快速排序:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据逗比另一部分的所有数据要小,然后在按照此方法对两部分数据分别进行快速排序,整个排序可用递归完成
堆排序
归并排序将两个以上的有序列表合并成一个新的有序表,即把排序序列分为若干个有序的子序列,再把有序列的子序列合并为有序序列

赞(2) 打赏
特别声明:除特殊标注,本站文章均为原创,遵循CC BY-NC 3.0,转载请注明出处。三伏磨 » 什么是算法

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏