算法
~TiAmo~
这个作者很懒,什么都没留下…
展开
-
【Python】经典算法总结之插入排序
将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增 1 的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动。2、从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面)1、将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。输入:1 3 4 8 2 5。输出:1 2 3 4 5 8。原创 2022-09-14 18:56:29 · 347 阅读 · 0 评论 -
【Python】经典算法总结之快速排序
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。2、重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。快速排序的时间复杂度在最坏情况下是O(N2),平均的时间复杂度是O(N*lgN)。3、递归地把小于基准值元素的子数列和大于基准值元素的子数列排序;的算法,它不满足稳定算法的定义。原创 2022-09-14 17:10:42 · 186 阅读 · 0 评论 -
【Python】经典算法总结之冒泡排序
冒泡排序比较是相邻的两个元素比较,交换也发生在这两个元素之间。如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是。2.如果很不幸我们的数据是反序的,则需要进行 n-1 趟排序。通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就像水底下的气泡一样逐渐向上冒。,因此要在排序过程中设置一个标志flag判断元素是否进行过交换,从而减少不必要的比较。原创 2022-09-14 15:12:32 · 333 阅读 · 2 评论 -
Python实现斐波那契数列
递归简而言之就是函数自己调用自己原创 2022-08-25 21:36:35 · 225 阅读 · 0 评论