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))
    
    
  • 相关阅读:
    【C++基础汇总】参数传递
    常用VC快捷键
    美股交易规则
    xpath 总结1
    【字符集】字符集和编码知识【转】
    【字符集】ASCII 表
    【win32编程学习】常用技巧总结
    【win32编程学习】 调用dll
    【win32编程学习】 创建自己的dll
    充实的生活
  • 原文地址:https://www.cnblogs.com/Python666/p/7468016.html
Copyright © 2011-2022 走看看