python 冒泡排序,递归

冒泡排序:

li = [33, 55, 58, 66, 58, 555,20000000000000000000000, 5555,5555, 5, 6, 62,1]

for i in range(1,len(li)):    for l in range(len(li)-i):        if li[l] >li[l+1]:            temp =li[l]            li[l]=li[l+1]            li[l+1]= tempprint(li)

递归:

斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368...
def func(arg1,arg2,n):    if n == 10:        print(arg1)        return (arg1, arg2)    arg3 = arg1 + arg2    func(arg2, arg3,n+1)

func(0,1,1)
时间: 2024-10-24 23:01:28

python 冒泡排序,递归的相关文章

关于python最大递归深度 - 998

今天LeetCode的时候暴力求解233 问题: 给定一个整数 n,计算所有小于等于 n 的非负数中数字1出现的个数. 例如: 给定 n = 13, 返回 6,因为数字1出现在下数中出现:1,10,11,12,13. 代码: class Solution: def __init__(self): self.key = '1' self.result = 0 def countDigitOne(self, n): """ :type n: int :rtype: int &qu

python的递归

今天,我们要讲的内容是关于python的递归. 什么是递归?看这个名字,你也许能够猜出个大概.关于递归,我们有一个很经典的应用,就是我们以前高中一些数学题目中的累乘,像n *(n-1)* (n-2) * ... * 1.在这里,如果要让你计算最终的结果,你可能会想到用for循环来实现,但是,我们在这里可以稍微进行优化一下,比如像这个例子一样: #for循环 def LSF(n): result = n for i in range(1,n): result *= i return result

python学习(递归)

一. 递归 递归就是函数自己调用自己 python中递归最大可用深度是997 递归可以用来遍历各种树形结构 #用递归方法查看某一个路径内的文件内容 import os filepath = 'd:\资料下载' #要打开的文件路径 def read(filepath,n): #n为递归深度,也就是用来控制缩进的数量 it = os.listdir(filepath) #按照给出的文件路径打开文件, 返回的it是一个可迭代对象 # print("__next__"in dir(it)) #

六. python进阶(递归)

一 .递归 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 递归函数: 一个会调用自身的函数称为递归函数凡是循环能干的事情 递归都能干方式: 写出临界条件 我这一次和上一次的关系 假设当前函数已经能用 调用自身计算上一次结果 在求出本次的结果 必须有一个明确的结束条件:每次进入更深一层递归时,问题规模相比上次递归都应有所减少相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输出就作为后一次的输入).递归效率不高,递归层次过多会导致栈溢出(在计

python 之递归及冒泡排序

一.递归函数 在函数内部,可以调用其他函数,如果一个函数在内部调用本身,这个函数就是递归函数 1.递归的基本原理: 每一次函数调用都会有一次返回.当程序流执行到某一级递归的结尾处时,它会转移到前一级递归继续执行(调用本身函数) 递归函数中,位于递归调用前的语句和各级被调函数具有相同的顺序 虽然每一级递归有自己的变量,但是函数代码并不会得到复制 递归函数中必须包含可以终止递归调用的语句 举例: >>> def fun2(i): ... r = fun2(i+1) ... return r

python 冒泡排序与快速排序 遇到的错误与问题

今天看了兄弟连php里面的冒泡排序与快速排序,想了下应该可以用python实现. 冒泡排序函数: def mysort(x): len1 = len(x) for i in range(len1-1,0,-1): for j in range(0,i): if x[j]>x[j+1]: x[j],x[j+1]=x[j+1],x[j] return x 第三行代码,是让i的值9到1,因为冒泡排序是大的数往后冒,当第二次循环时,最大的数已经在最后了,所以不需要在比较一次. 同理,第三次,只要让其比较

python-学习笔记之-Day5 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化

1.双层装饰器 #!/usr/bin/env python # -*- coding: utf-8 -*- # author:zml LOGIN_INFO = False IS_ADMIN = False   def check_log(func): def inner(): res = func() if LOGIN_INFO: print('验证成功!') return res else: print('验证失败!') return inner   def check_admin(func)

python函数递归和生成器

一.什么是递归 如果函数包含了对其自身的调用,该函数就是递归的.递归做为一种算法在程序设计语言中广泛应用,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量.例如,要计算1-9的9位数字的乘积,直观的算法是1*2*3*4*5*6*7*8*9,如果要计算1-10000的乘积,直观的算法就难于实现出,而递归就可以很简单的实现.请看示例: 1 def fact(n):#计算给定数字到一的乘积

冒泡排序的思想 python 冒泡排序

冒泡排序的时间复杂度是O(N^2) 冒泡排序的思想: 每次比较两个相邻的元素, 如果他们的顺序错误就把他们交换位置 比如有五个数: 12, 35, 99, 18, 76, 从大到小排序, 对相邻的两位进行比较 第一趟: 第一次比较: 35, 12, 99, 18, 76 第二次比较: 35, 99, 12, 18, 76 第三次比较: 35, 99, 18, 12, 76 第四次比较: 35, 99, 18, 76, 12 经过第一趟比较后, 五个数中最小的数已经在最后面了, 接下来只比较前四个