• python实现冒泡排序和快速排序


    冒泡排序和快排的python实现:

    
    data = [1, 3, 5, 10, 4, 7]
    times = 0
    "冒泡排序"
    for i in range(len(data)):
        for j in range(len(data) - i - 1):
            if data[j] > data[j + 1]:
                tmp = data[j + 1]
                data[j + 1] = data[j]
                data[j] = tmp
            times += 1
    
    print("冒泡排序")
    print(data)
    print("times:%d" % times)
    
    
    "改进冒泡排序,插入标志位,提前结束排序"
    data = [1, 3, 5, 10, 4, 7]
    times = 0
    for i in range(len(data)):
        pos = 0
        for j in range(len(data) - i - 1):
            if data[j] > data[j + 1]:
                tmp = data[j + 1]
                data[j + 1] = data[j]
                data[j] = tmp
                pos = 1
            times += 1
        if pos == 0:
            break
    
    print("改进冒泡排序")
    print(data)
    print("times:%d" % times)
    
    
    "快排,选第一个数为基准值,小数放在基准左边,大数放在基准右边"
    data = [1, 3, 5, 10, 4, 7]
    
    
    def exchage(x, y):
        return y, x
    
    
    def qsort(left , right):
        if left > right:
            return
        p = data[left]
        i = left
        j = right
    
        while i != j:
            
    
            while data[j] > p and i < j:
                j -= 1
    
            data[i],data[j] = exchage(data[i],data[j])
    
            while data[i] < p and i < j:
                i += 1
            
            data[i],data[j] = exchage(data[i],data[j])
    
        
        qsort(left,i-1)
        qsort(i+1,right)
        
    
    qsort(0,len(data)-1)
    print("quick sort")
    print(data)
    
    

    输出结果:

    冒泡排序
    [1, 3, 4, 5, 7, 10]
    times:15
    改进冒泡排序
    [1, 3, 4, 5, 7, 10]
    times:12
    quick sort
    [1, 3, 4, 5, 7, 10]
    
  • 相关阅读:
    摄影基础知识(二)
    std::bind
    摄影网站汇总
    std::function
    常用路径说明
    摄影基础知识(一)
    JavaScript 箭头函数:适用与不适用场景
    软帝学院:Java实现的5大排序算法
    软帝学院:用Java编写计算器,代码展示!
    windows环境下运行java的脚本
  • 原文地址:https://www.cnblogs.com/WeyneChen/p/6682611.html
Copyright © 2020-2023  润新知