• 第二十七节,冒泡排序


    冒泡排序必备知识

    1两个变量互换值的错误方法
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    #两个变量互换值的错误方法
    a = 123
    b = 456
    a = b  #=456
    b = a #=456
    print(a,b)
    #打印出 456 456
    2两个变量互换值的正确方法
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    #两个变量互换值的正确方法
    a = 123
    b = 456
    
    c = a # =123
    a = b #=456
    b = c #=123
    print(a)
    print(b)
    # 打印出
    # 456
    # 123
    3将一个列表的元素互换位置
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    #将一个列表的元素互换位置
    a = [11,22]
    
    b = a[0]    # = 11
    a[0] = a[1] # = 22
    a[1] = b    # = 11
    print(a)
    #打印出 [22, 11]
    4冒泡排序的取值方法
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    #冒泡排序取出来要排序的判断值
    li = [11, 7687, 34, 99, 34678, 3456, 8759, 546]
    
    for i in range(len(li) - 1): #len检查li列表有多少个元素,将返回数-1当做参数传入range创建成循环次数
        a1 = li[i]  #等于每次循环到的列表索引(索引取值)
        a2 = li[i + 1]  #等于每次循环到的列表索引加1(索引取值)
        print(i, a1, a2)    #这样打印出来,i就是列表的索引,a1和a2就是每次循环取出来要排序的判断值
    #打印出
    # 0 11 7687         
    # 1 7687 34         
    # 2 34 99          
    # 3 99 34678        
    # 4 34678 3456      
    # 5 3456 8759       
    # 6 8759 546        

     5冒泡排序原理

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    #冒泡排序原理
    li = [11, 7687, 34, 99, 34678, 3456, 8759, 546]
    for i in range(len(li) - 1):  # len检查li列表有多少个元素,将返回数-1当做参数传入range创建成循环次数
        if li[i] > li[i + 1]:  # 每次循环的次数和次数加1当做列表的索引取出列表的两个元素,判断第一个元素是否大于第二个元素
            huh = li[i]  # 如果第一个元素大于第二个元素,将第一个元素赋值给一个变量
            li[i] = li[i + 1]  # 将第一个元素等于第二个元素
            li[i + 1] = huh  # 将第二个元素等于赋值的huh变量,这样第一元素和第二元素就进行互换位置
    print(li)
    # 打印出   [11, 34, 99, 7687, 3456, 8759, 546, 12, 34678]
    
    #此列为进行了一遍冒泡排序,注意:有多少个元素就要进行多少遍冒泡排序见下列

     
    6冒泡排总的流程(重点)
    # -*- coding:utf-8 -*-
    #冒泡排总的流程(重点)
    li = [11, 7687, 34, 99, 34678, 3456, 8759, 546]
    
    for j in range(1, len(li)):         #len检查li列表有多少个元素,将返回数当做参数传入range创建成循环次数从1开始循环
        for i in range(len(li) - j):  # len检查li列表有多少个元素,将返回数-1当做参数传入range创建成循环次数
            if li[i] > li[i + 1]:  # 每次循环的次数和次数加1当做列表的索引取出列表的两个元素,判断第一个元素是否大于第二个元素
                huh = li[i]  # 如果第一个元素大于第二个元素,将第一个元素赋值给一个变量
                li[i] = li[i + 1]  # 将第一个元素等于第二个元素
                li[i + 1] = huh  # 将第二个元素等于赋值的huh变量,这样第一元素和第二元素就进行互换位置
    print(li)
    #打印出 [11, 34, 99, 546, 3456, 7687, 8759, 34678]
    
    #这样就进行了全部冒泡排序从小到大
     
     
     
  • 相关阅读:
    redis反序列化报错解决
    Java实现InputStream流的复制
    Java正则表达式匹配的坑
    System.Runtimer.CompilerService.Caller attributes methods and examples
    Wpf code behind call viewModel method
    WPF Prism v4 MVVM
    Annoymous type get properties and values
    C# quick sort
    Invoke microsoft own System.Text.Json.JsonSerialize() method to serialize object,without encoding
    Interface declare event and the concrete class implement the interface
  • 原文地址:https://www.cnblogs.com/adc8868/p/5707082.html
Copyright © 2020-2023  润新知