zoukankan      html  css  js  c++  java
  • 冒泡排序,快速排序

    冒泡拍序

    def bubble_sort(nums):
        for i in range(len(nums) - 1):
            for j in range(len(nums) - i - 1):
                if nums[j] > nums[j + 1]:
                    nums[j], nums[j + 1] = nums[j + 1], nums[j]
        return nums
    
    #冒泡排序优化
    def bubble_sort2(nums):
        #比如说n个数,则只要进行n-1次冒泡
        for i in range(len(nums)-1):
            flag=False#设置一个交换标志位
            #j就是控制每一次具体的冒泡过程
            for j in range(len(nums)-i-1):
                if nums[j]>nums[j+1]:
                    nums[j], nums[j + 1] = nums[j + 1], nums[j]
                    flag=True
            if not flag:
                return nums
        return nums
    
    
    if __name__ == "__main__":
        nums=[12,2,3,3,7]
       # print(bubble_sort(nums))

    快速排序

    def quick_sort(b):
        if len(b)<2:
            return b
        #选取继基准,中间的值
        mid=b[len(b)//2]
        #定义基准值左右两个数列
        left,right=[],[]
        #从原始数组中移除基准值
        b.remove(mid)
        for i in b:
            #大于基准值放右边
            if i>mid:
                right.append(i)
            else:
                left.append(i)
        #使用迭代进行比较
        return quick_sort(left)+[mid]+quick_sort(right)
  • 相关阅读:
    FLEX布局做响应式页面
    vscode 设置指南
    js原生事件委托的实现
    fiddler相关功能和命令
    JavaScript常见问题
    Nodejs命令学习
    ES6和babel的恩怨纠葛
    js模块编程
    Mac-Python 从2.7版本升级到3.7版本
    Java-Mac版Idea安装TestNG框架
  • 原文地址:https://www.cnblogs.com/wangxue1314/p/13492743.html
Copyright © 2011-2022 走看看