python的选择排序、冒泡排序、水仙花、斐波那契及鸡兔同笼
冒泡排序:
#冒泡排序(降序) #冒泡排序要排序n个数,由于每遍历一趟只排好一个数字, #则需要遍历n-1趟,所以最外层循环是要循环n-1次,而 #每次趟遍历中需要比较每归位的数字,则要在n-1次比较 #中减去已排好的i位数字,则第二层循环要遍历是n-1-i次 bb=[6,5,8,2,45,3,9] for ii in range(len(bb)-1): for jj in range(len(bb)-1-ii): if (bb[jj+1]>bb[jj]): temp=bb[jj] bb[jj]=bb[jj+1] bb[jj+1]=temp print(bb)
选择排序:
#选择排序(升序) #先从序列中,找到最小的元素,放在第一个位置 #之后找到第二小的元素,放在第二个元素,以此类推 bb=[6,5,8,2,45,3,9] for i in range(len(bb)-1): min=i #遍历一次找到一个最小值下标 for j in range(i+1,len(bb)): #这里的range()前闭后开,若要取到len(bb)-1第二个参数只能为len(bb) if(bb[min]>bb[j]): #将最小的值赋给bb[min] temp1=bb[j] bb[j]=bb[min] bb[min]=temp1 print(bb)
水仙花:
#水仙花数(自恋数) # 一个数的各位数的3次幂的和等于它本身 j=[] for i in range(100,1000): a=i%10 b=(i//10)%10 c=i//100 if(i==a**3+b**3+c**3): j.append(i) print(j) print(879 in j)
鸡兔同笼:
#鸡兔同笼 a=120 #头 b=350 #脚 for x in range(1,a):#x为鸡的头数 y=a-x #兔子数量 if(2*x+4*y==350): print("鸡有{}只,兔有{}只 ".format(x,y))
斐波那契:
#自定义迭代器feibo(n) def feibo(n): a,b,count=1,1,1 while True: if(count>n): return yield a a,b=b,a+b count+=1 iter1=feibo(10) while True: try: print(next(iter1),end=" ") except StopIteration: break print("\n")
作者:人迹罕至的那条路
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。