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)


  • 相关阅读:
    (dp)LeetCode Weekly Contest 34 -Non-negative Integers without Consecutive Ones
    (后缀数组)poj 3581 Sequence
    (最小生成树)Codeforces 76 A Gift
    (最小生成树)Codeforces Educational Codeforces Round 9 Magic Matrix
    (AC自动机)UVALive
    (trie)BUAAOJ 371
    CCF 201312-3 最大的矩形
    http错误代码含义
    数据结构-5-二叉树的实现以及递归遍历的实现
    数据结构-3.4-栈与队列
  • 原文地址:https://www.cnblogs.com/wuzhuangzhuang/p/12119763.html
Copyright © 2011-2022 走看看