??带你轻松走进算法的世界!算法图解:第一章:算法入门
2022-04-29 14:01:01


❤️带你轻松走进算法的世界!算法图解:第一章:算法入门_python


Hello,大家好我叫是Dream呀,一个有趣的Python博主,小白一枚,多多关照 ?

入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!

最后,愿我们都能在看不到的地方闪闪发光,一起加油进步

“一万次悲伤,依然会有Dream,我一直在最温暖的地方等你”,唱的就是我!哈哈哈~



第一章算法简介:

1.1引言

算法是一组完成任务的指令,任何代码片段都可以看做是一个算法!

1.1.1性能方面

本专栏介绍的每种算法都很可能有使用你喜欢的语言编写实现,你将学习到不同算法的优缺点,进而选择更好地算法!

1.1.2问题解决及技巧

利用这些广泛的算法,你将会学习到更具体的AI算法,数据库算法。

1.2 二分查找

二分查找是一种算法,其输入必须是一个有序的元素列表。如果要查找的元素包含在列表中,二分查找返回其位置;否则返回null。

1.2.1简单查找

依次查找n次,又叫做傻找

1.2.2更佳的查找方式

每次从中间开始查找,就是我们所说的二分查找,这样我们的时间复杂度就是logn,而不是简单查找中的n

❤️带你轻松走进算法的世界!算法图解:第一章:算法入门_python_02

def binary_search(list,item):
low=0
high=len(list)-1
while low<=high:
mid=(low+high)//2
guess=list[mid]
if guess==item:
return mid
if guess>item:
high=mid-1
else:
low=mid+1
return None
print(binary_search([1,3,5,7],1))

1.2.3运行时间

如果有100个元素,简单查找需要找100次;而如果有40个亿的元素,其更是要查找40亿次,先不说时间问题,估计你的电脑跑出来这个程序也离退休不远了~

换而言之,这种时间被称为线性时间

二分查找则不同,100个元素只需要7次;40亿个元素,只需要惊人的32次!

这样的运行时间被称为对数时间

❤️带你轻松走进算法的世界!算法图解:第一章:算法入门_运行时间_03

1.3大O表示法

大O表示法是一种特殊的表示法,指出了算法有多快。

1.3.1算法的运行时间以不同的速度增加

例如:为检查长度为的的列表,简单查找需要查找n次,运行时间为O(n),二分查找的运行时间为O(log n)。这指出了算法需要执行的操作数。之所以被称为大O表示法,是因为操作数前面有个O。这听起来像笑话,但事实确实如此。

1.3.2 理解不同的大O运算时间

大O表示法指出了最糟糕的情况下的运行时间。

1.3.3一些常见的大O运行时间

  1. O(log n):对数时间,这样的算法包括二分查找
  2. O(n):线性时间,这样的算法包括简单查找
  3. O(n*log n):这样的算法包括快速排序
  4. O(n**2):这样的算法包括选择排序
  5. O(n!):这样的算法包括旅行商问题的解决方案

❤️带你轻松走进算法的世界!算法图解:第一章:算法入门_运行时间_04

注意:

1.算法的速度并非指时间,而是操作数的增速

2.谈论算法的速度时,我们说的是随着输入的增加,其运行时间将以什么样的速度增加

3.算法的运行时间用大O表示法表示

4.O(logn)比O(n)快,当需要搜索的元素越多时,前者比后者快得多。

1.3.4旅行商

一位商人要去往五个城市,规划出最优路线。这需要我们先找出所有路线再作比对,也就是5!,这个方法很费时间,但目前还没有找到更快的算法。❤️带你轻松走进算法的世界!算法图解:第一章:算法入门_python_05

1.4小结

1.二分查找的速度比简单查找快得多

2.O(log n)比O(n)快,需要搜索的元素越多,前者比后者就更快得多!

3.算法运行时间不是以秒为单位

4.算法运行时间是从其增速的角度度量的

5.算法运行时间用大O表示法表示

最后的福利

最后一点小福利带给大家:如果想快速上手python的小伙伴们,这个详细整理PPT可以迅速帮助大家打牢python基础,需要的小伙伴们可以下载一下Python入门基础教程全套+小白速成+学不会来找我!

好啦,这就是今天要给大家分享的全部内容了

如果你喜欢的话,就不要吝惜你的一键三连了~❤️带你轻松走进算法的世界!算法图解:第一章:算法入门_数据结构_06



本文摘自 :https://blog.51cto.com/u


更多科技新闻 ......