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)
  • 相关阅读:
    四轴PID思路整理
    STM32输入捕获TIM2四通道
    四轴和遥控器的对应
    四层板学习(二)
    四层板学习(一)布线前的准备
    冲突的处理方法
    散列表
    重设置电脑时间
    深圳销量统计源码分析
    源码分析
  • 原文地址:https://www.cnblogs.com/wangxue1314/p/13492743.html
Copyright © 2011-2022 走看看