01什么是算法?
我们来看百度百科对算法的解释:算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令。
我们可以理解算法就是计算机面对一个问题的解决方法。
比如,我们要求计算机帮我们将输入的100个整数从小到大进行排序,那么排序的具体方法,就是算法。
举个例子,比如我们现在有这么一列数据 [ 5,7,8,3,1],现在需要程序帮我们进行从小到大进行排序。
应该怎么办呢?
在程序中,我们已经知道数据可以进行加减乘除运算,还可以进行逻辑比较
对于这五个数据,我们可以先让五个数据进行比较,比较最后得到1是最小的,然后将1和首位的5进行交换,现在的结果是[ 1,7,8,3,5],接下来,让1后面的四个数据,执行同样的操作,比较得到3是最小的,将3与7交换位置,就得到[1,3,8,7,5]。
然后在后3位中继续同样操作,得到5是最小的,就与8进行交换得到 [1,3,5,7,8],最后剩下的两个进行比较,发现7是最小的,位置不用交换,完成排序
这种方法就是选择排序,我们刚刚具体地模拟了计算机是如何一步步将一列数据从小到大排好序的
02那么,程序如何写呢?
python 选择排序
排序的过程如下
选择排序具体过程
当然还有其他很多的排序方法,就是不同的解题方案
03
冒泡排序
比如说冒泡排序,这如它的名字一样,将小的数浮上来,大的数沉下去,还是拿刚刚的数据举例:[ 5,7,8,3,1]
首先,5和7进行比较,7更大,那么不用交换位置,让7和下一位比较,7和8,8更大还是不用交换,接下来8和3比较,8更大,8和3进行交换,得到[5,7,3,8,1]
然后8和1比较,交换位置,得到[5,7,3,1,8]
接下来,对前面 5,7,3,1 四个数据进行同样操作,经过操作之后得到,[5,3,1,7,8]
然后,对【5,3,1】再进行一轮,得到 [3,1,5,7,8]
最后对 [3,1] 进行交换得到 [1,3,5,7,8]
python 冒泡算法
具体的排序过程如下
冒泡排序过程
现在你发现了两种方法都可以解决同一个问题,但两者的方法不一样,执行效率也不一样,这就设计到时间复杂度和空间复杂度,在这次课中我们就展开讲。
这次课主要了解算法是什么
04回顾总结
1、尝试自己写一个选择算法
2、写一个冒泡算法
当你有了一些基础之后,想要通过书籍系统提高,可以参考这本流畅的python教程:
欢迎关注我,一起轻松学习python编程
如果对你有帮助,可以随手点赞和收藏,这样可以让更多人看到!
如果你有问题可以在留言区告诉我或私信给我