数据结构与算法——(一)算法

随着目前学习的语言和框架越来越多,发现自己的基础还比较薄弱,现在趁着有时间学习一下,并分享给大家,或许会有以我目前理解的一些有问题,我会在后续有时间的时候持续更新,大家也可以留言或者分享交流技术。

1、什么叫算法

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间,空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度时间复杂度来衡量。

用我自己的方法帮助大家理解:简单说就是你程序中的每个步骤,像是输出一行print、循环for、判断if-else或是简单的数据运算+-*/都属于在算法中,是指程序实现结果的过程

2、最坏算法

算法的最坏时间复杂性是研究各种输入中运算最慢的一种情况下的运算时间;平均时间复杂性是研究同样的n值时各种可能的输入,取它们运算时间的平均值。(当然还存在最优算法,但是我们会普遍关注最坏和平均算法来查看程序的运行效率)

3、常见的算法时间复杂度O以及算法复杂度的大小顺序

常见的算法一般有

O(1): 表示算法的运行时间为常量

O(n): 表示该算法是线性算法

O(㏒2n): 二分查找算法

O(n2): 对数组进行排序的各种简单算法,例如直接插入排序的算法。

O(n3): 做两个n阶矩阵的乘法运算

O(2n): 求具有n个元素集合的所有子集的算法

O(n!): 求具有N个元素的全排列的算法

下面这个博主的资料比较全面,大家可以仔细阅读一下:

常见算法及其时间复杂度总结_常见算法时间复杂度表-CSDN博客

在其中把每个算法都讲解了

好了,今天这篇描述的比较简单也比较基础,后续呢会先更新数据结构,然后结合数据结构具体讲述像冒泡、二分、二叉树等常见的算法,大家按照我文章标题的序号就可以找到。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值