zoukankan      html  css  js  c++  java
  • python冒泡排序

    冒泡排序原理:

    冒泡排序就是遍历数据,每次只与下一个数字比较,如果这两个数顺序不对,则与交换过来。

    就上面那个问题来说,因为要升序排列,所以数字越大越排在后面。则两个数比较的时候,如果后一个数比当前数小,则顺序不对,要将这两个数交换。遍历的过程如下图:

    第一次比较第一和第二个数字,9与2相比较,9比2大,顺序不对,则交换位置。

    第二次比较第二与第三个数字,因为9换到了第二位,则9与8比较,9大,顺序不对,则交换位置。

    以此类推,最后9就像泡泡一样升到了最后一位,我们称这样为一趟,这一趟里面有多次比较。

    由于一趟只归为一个数,则如果有n个数字,则需要进行n-1趟。

    因为归位后的数字不用再比较了,所以每趟只需要比较n-1-i次(i为已执行的趟数)。

    由上可以得出冒泡排序的关键步骤是两个循环:

    复制代码
    1 for(i = 0; i < n-1; i++){
    2   for(j = 0; j < n-1-i; j++)
    3     if(a[j] > a[j+1]){
    4       temp = a[j];
    5       a[j] = a[j+1];
    6       a[j+1] = temp;
    7     }
    8 } 
    复制代码

    python实现:

    根据上述思路,用python实现也是把关键地方实现即可:

    a= [3,5,7,9,2,4,6,0]
    for i in range(len(a)-1):
    for j in range(len(a)-1-i):
    if a[j] > a[j+1]:
    a[j], a[j+1] = a[j+1], a[j]
    print(a)
  • 相关阅读:
    【dp专题1】hdu1003 D
    #网络之宙斯盾航母#-----占位--------linux
    面向过程6-----#过程之王#----占个位-----汇编语言----(面向机器)
    面向过程5----c#
    高级语言学习总结
    js实现求二元一次方程的根
    小知识点总结
    js小案例,判断年龄是否成年
    js实现结婚吧小案例
    面向过程4-----perl
  • 原文地址:https://www.cnblogs.com/jieliu8080/p/10730172.html
Copyright © 2011-2022 走看看