• lowB 三人组


    lowB 三人组

    1.冒泡排序

    2.选择排序

    3.插入排序

    1.冒泡排序

    #冒泡排序法:竖看,一一比较,把大的放在最顶。 每两个相邻的数,如果前边的比后边大就交换这两个数。
    '''
    分析:
        1.本来为无序区,没进行一趟冒泡,就有一位进入有序区,无序区就-1
            2.正常来说:一个列表需要走N趟冒泡,但是,最后一位数其实是不需要走了,就是 N-13.i 表示趟数,j 表示 箭头
        2.时间复杂度:O(N2)
    '''
    import random
    
    def bubble_sort(x):
        for i in range(len(x)-1):
            change = False
            for j in range(len(x)-i-1):
           if x[j] > x[j+1]: x[j],x[j+1] = x[j+1],x[j] change =True if not change: break li = list(range(10)) random.shuffle(li) print(li) bubble_sort(li) print(li)

    结果:

    2.选择排序

    # 选择排序法: 横看,把最小的放在最左边
    '''
    关键点:
        无序区
        
        最小数额位置
    '''
    import random
    
    def select_sort(x):
        for i in range(len(x)-1):
            min_loc = i
            for j in range(i+1,len(x)):
                if x[j] < x[min_loc]:
                    min_loc = j
            if min_loc !=i:
                x[i],x[min_loc] = x[min_loc],x[i]
    
    li = list(range(10))
    random.shuffle(li)
    print(li)
    select_sort(li)
    print(li)

    结果:

    3.插入排序

    # 插入排序法: 先一个有序区数字,把无序区的数依次插入到有序区,直到无序区没有为止
    '''
    关键点: 
        摸到的牌
        手里的牌
    
    '''
    import random
    def insert_sort(x):
        for i in range(1,len(x)):
            tmp = x[i]
            j = i-1
            while j >=0  and tmp < x[j]:
                x[j+1] = x[j]
                j = j-1
            x[j+1] = tmp
    
    li = list(range(10))
    random.shuffle(li)
    print(li)
    insert_sort(li)
    print(li)

    结果:

  • 相关阅读:
    Unity 历史版本的安装
    jQuery使用记录
    tkinter 按钮响应函数传值
    python网络爬虫入门(二)
    python 爬取豆瓣书籍信息
    python 爬取猫眼电影top100数据
    SpringMVC+SpringBoot+MyBatis
    时间日期类
    Mybatis框架(三)
    Java框架之MyBatis框架(二)
  • 原文地址:https://www.cnblogs.com/zhongbokun/p/9060934.html
Copyright © 2020-2023  润新知