zoukankan      html  css  js  c++  java
  • python:注释最多的冒泡排序


    冒泡就是重复地遍历要排序的数列,一次比较两个元素(泡泡),如果他们的顺序错误就把他们交换过来,像泡泡一样,依次按照顺序上升排列。

     冒泡排序算法的运作如下:

    • 比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。
    • 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
    • 针对所有的元素重复以上的步骤,除了最后一个。
    • 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
    写了三种冒泡,大同小异,差不多都一样昂,这应该是注释最多的冒泡排序了吧O(∩_∩)O哈哈~

    1
    ##第一种冒泡## 2 a=[2,9,4,1]#列表 3 n=len(a)#a的列表元素长度.n=4 4 for i in range(n-1):#外循环,控制循环轮数,n-1是索引从0开始取的。(n-1=3) 5 for j in range(n-i-1):#内循环控制元素循环次数(n-i-1=3) 6 if a[j]>a[j+1]:#j=0,j+1=1,如果a[0]>a[0+1] 7 a[j],a[j+1]=a[j+1],a[j]#复合赋值,如果满足条件则进行调换 8 print(a) 9 ##第二种冒泡## 10 a=[2,9,4,1]#列表 11 n=len(a)#a的列表元素长度.n=4 12 for i in range(n-1):#外循环,控制循环轮数,n-1是索引从0开始取的。(n-1=3) 13 for j in range(n-i-1):#内循环控制元素循环次数(n-i-1=3) 14 if a[j]>a[j+1]:#j=0,j+1=1,如果a[0]>a[0+1] 15 #这种调换方式比较麻烦些,不像上一个一步到位 16 jj = a[j + 1]#把a[j+1]赋值给jj 17 a[j + 1] = a[j]#然后再把a[j]赋值给a[jz=1] 18 a[j] = jj#然后再把jj赋值给a[j] 19 print(a) 20 ##第三种冒泡## 21 aa = [2,9,4,1] 22 def sort(aa):#定义一个函数 23 print('排序前:') 24 print(aa) 25 for i in range(len(aa)-1):#len(aa)#得出aa的元素长度 26 for j in range(len(aa)-1-i):#剩下的就给上面的一样了 27 if aa[j]>aa[j+1]: 28 aa[j],aa[j+1]=aa[j+1],aa[j] 29 print('第{}次排序后:'.format(i+1))#用到了format函数 30 print(aa) 31 sort(aa) 32 print('排序后:') 33 print(aa)
    最后来个直接排序的函数,一招制敌。
    aa = [2,9,4,1]
    aa.sort(reverse=False)#sort直接排序函数,True 降序,False 升序(默认)。
    print(aa)


  • 相关阅读:
    抽象工厂例子
    学习boost::asio一些小例子
    boost::asio学习(定时器)
    共享内存
    网络流程图
    粘包
    端游服务器群
    38 写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
    37 有n个人围成一圈,顺序排号,从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号那位.
    36 有n个整数,使其前面各数顺序向后移n个位置,最后m个数变成最前面的m个数
  • 原文地址:https://www.cnblogs.com/wuzhuangzhuang/p/12119763.html
Copyright © 2011-2022 走看看