zoukankan      html  css  js  c++  java
  • lowB三人组代码示例

    冒泡排序:列表在内存重只存一份,所以不需要重复赋值
    import random
    from timewrap import *          #时间装饰器
    
    # 初级版本 @cal_time
    def bubble_sort(li): for i in range(len(li)-1): #循环的躺数为总的躺数-1,因为最后一步没必要走 # i 表示趟数 # 第 i 趟时: 无序区:(0,len(li) - i) for j in range(len(li) - i - 1): #循环i次之后就还有总长度-1-i次 if li[j] > li[j+1]: #如果低j个数比j+1个数还要大,说明j在j+1的上边 li[j], li[j+1] = li[j+1], li[j] #交换位置
    # 优化版,和上边的基本一样,只是在他的基础上增加了一层判断,如果刚刚开始列表就是有序的则不需要进行排序 @cal_time
    def bubble_sort_2(li): for i in range(len(li)-1): # i 表示趟数 # 第 i 趟时: 无序区:(0,len(li) - i) change = False for j in range(len(li) - i - 1): if li[j] > li[j+1]: li[j], li[j+1] = li[j+1], li[j] change = True #排序成功返回True if not change: #如果没有change的值代表没有排序, return li = list(range(10000)) #随机产生10000个数 # random.shuffle(li) #打乱后的结果 # print(li) bubble_sort_2(li) #没有打乱排序,直接走if not change: print(li)
    #选择排序
    import random
    from timewrap import *         #时间装饰器,用来判断函数执行的时间长度
    
    @cal_time
    def select_sort(li):
        for i in range(len(li)-1):
            # i 表示趟数,也表示无序区开始的位置
            min_loc = i   # 最小数的位置          的到一个最小值
            for j in range(i+1, len(li)):   #此时i就是最小值
                if li[j] < li[min_loc]:           #如果li[j]<li[min_loc]   说明j就是最小值
                    min_loc = j
            li[i], li[min_loc] = li[min_loc], li[i]       #交换位置,最小值放在前边
    
    
    li = list(range(10000))    #随机产生1000个数字
    random.shuffle(li)         #打乱
    print(li)
    select_sort(li)            #调用函数,排序
    print(li)
    #插入排序
    import random
    from timewrap import *
    
    @cal_time
    def insert_sort(li):
        for i in range(1, len(li)):
            # i 表示无序区第一个数
            tmp = li[i] # 摸到的牌                 随机去到一支歌
            j = i - 1 # j 指向有序区最后位置
            while li[j] > tmp and j >= 0:        # 有序区最下的值
                #循环终止条件: 1. li[j] <= tmp; 2. j == -1
                li[j+1] = li[j]
                j -= 1
            li[j+1] = tmp
    
    
    li = list(range(10000))
    random.shuffle(li)
    print(li)
    insert_sort(li)
    print(li)
  • 相关阅读:
    Java蓝桥杯--基础练习(7)特殊回文数
    第九周项目1-利用循环求和
    第八周项目6-本月有几天?
    第八周项目5-定期存款利息计算器
    第八周项目4-个人所得税计算器
    第八周项目3-多分段函数求值
    第八周项目2-计算小贺的周工资
    第八周项目1-求简单分段函数的值
    玩坏的Bad Apple之DOS
    玩坏的Bad Apple之Vim
  • 原文地址:https://www.cnblogs.com/52-qq/p/8399307.html
Copyright © 2011-2022 走看看