- 博客(4)
- 收藏
- 关注
原创 python算法之最low三人组之一——————选择排序
之前讲过了冒泡排序,我们再聊一聊最low三人组中的选择排序,选择排序的基本思想是:遍历整个序列,选取其中一个最小的数取出来,然后再次遍历除了刚刚选出来的最小的数的序列中最小的数。新代码的思想为:用min_li来记录最小数的下标,最开始赋值为第一个数的下标,第一层循环为第几趟,第二层循环为取出循环中最小的数的下标,循环开始 为。我们换个思想,不建立新的列表来接受数,我们就把最小的数放到序列最前面,然后循环后面的序列即可,这样空间复杂度解决了,那时间复杂度我们看看代码。序列里面选到的最小的数,利用。
2024-11-11 20:27:36
371
原创 python算法之最low三人组之一 ——————冒泡排序
第一层循环为n-1,每次循环到n-1次时,只剩下第n个数,不用比较,则只循环n-1次,这是外循环,内循环为n-i-1,内循环为类似指针,从最底下的数循环指向,比较完向上移动,因为每次循环以后都有一个数确定最大,下一次循环不用考虑,所以每次循环都在上一次的基础上减一,然后判断大小,如果。如果给定[7,8,9,1,2,3,4,5,6]这样的无序序列,可知只用循环三次就完成排序,但是上述代码会继续循环n-1次,所以我们为了降低时间复杂度,可以设置一个标志符来提前退出循环,那怎么确定可以推出呢?
2024-11-07 15:41:55
478
原创 学习python所需要知道最简单的两个查找算法——顺序查找,二分查找
是需要查找的元素,首先要知道enumerate函数的用法,它是python的内置函数,可以返回下标和元素的函数,用ind接收返回的下标,用v返回元素,如果v==val,则说明查找到了元素,则返回该元素的下标,整个for循环结束还没有找到就返回None。然后聊聊二分查找,二分查找的主要思想就是将序列按照从小到大排列,从最中间开始查找,如果最中间的元素比需要查找的元素大,则元素在中间的元素的左边,反之在右侧,更新指针从新只想中间元素的左右,可见时间复杂度为o(logn)给一个序列案例,输出调用函数。
2024-11-05 23:13:04
759
原创 汉诺塔问题python算法
首先讲解只有一个圆环时,则调用hanoi(1,'A','B','C'),首先判断if条件,n>0,则调用hanoi(0,'A','C','B'),n=0,返回空,即什么都不返回,然后执行print语句,输出:moving from A to C。可能会有人疑惑为啥不是A to B,因为最外层是n=1,#1语句调用了n=0,为空,#2调用的a和c就是最外层的a,c,等下循环两次时,里面的参数会改变,因为这里是形式参数。然后调用的#3也是n=0,返回空。
2024-11-03 22:21:09
923
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅