zoukankan      html  css  js  c++  java
  • Python 排序算法

    列表排序就是把无序的列表变成有序的列表,Python中内置的是sort()是用C语言写的,速度快,在实际的应用是使用,这里是用Python写排序的算法,仅供学习

    冒泡排序

    """
    冒泡排序,注意的关键点是有序区和无序区
    比较相邻的两个数的大小,如果前面的数比后面的数大,则交换,
    交换完一次称为一趟,每一趟的指针:n-i-1(ns是总数,i是趟数),即每一趟遍历的个数
    """
    import time
    import random as rd
    
    
    def cal_time(func):
        def wrapper(*args, **kwargs):
            t1 = time.time()
            x = func(*args, **kwargs)
            t2 = time.time()
            print("%s running time is %s sec" % (func.__name__, t2 - t1))
            return x
    
        return wrapper
    
    
    @cal_time
    def bubble_sort(li):
        """
        第一层的for循环是趟
        第二层的for循环是每一趟中比较相邻两个数的大小
        :param li:
        :return:
        """
        for i in range(len(li) - 1):
            for j in range(len(li) - i - 1):
                if li[j] > li[j + 1]:
                    li[j], li[j + 1] = li[j + 1], li[j]
        return li
    
    
    """
    冒泡排序的时间测试
    """
    # li = [ i for i in range(1000)]
    li = list(range(10000))
    rd.shuffle(li) # 用shuffle对li洗牌 是直接操作的li
    
    print(bubble_sort(li))
    
    
  • 相关阅读:
    9.17考试
    Something
    tesuto-Mobius
    7.22考试
    填坑...P1546 最短网络 Agri-Net
    P1125 笨小猴
    P2822 组合数问题
    致我们曾经刷过的水题
    Luogu P1186 玛丽卡
    Luogu P1726 上白泽慧音
  • 原文地址:https://www.cnblogs.com/Python666/p/7468016.html
Copyright © 2011-2022 走看看