zoukankan      html  css  js  c++  java
  • python实现经典排序

     

    冒泡排序

    def bubble (arr):
        flag=False
        for j in range(len(arr)-1):
            for i in range(len(arr)-1-j):
                if arr[i]>arr[i+1]:
                    arr[i],arr[i+1] = arr[i+1],arr[i]
                    flag=True
            if not flag:
                return arr
        return arr

    选择排序

    def chooice(arr):
        lg=len(arr)
    
        for j in range(lg-1):
            min=j
            for i in range(j+1,lg):
                if arr[min]>arr[i]:
                    min=i
    
            arr[min],arr[j]=arr[j],arr[min]
        return arr

    插入排序

    def insert_order(arr):
        for i in range(1,len(arr)):
            j=i-1
            while j>=0 :
                if arr[j+1]<arr[j]:
                    arr[j], arr[j + 1] = arr[j + 1], arr[j]
                    j=j-1

    快排

    def get_mid(arr,left,right):
        mid=arr[left]
        while left<right:
            while left<right and arr[right]>=mid:
                right-=1
            arr[left]=arr[right]
            while left<right and arr[left]<=mid:
                left+=1
            arr[right] = arr[left]
        arr[right]=mid
        return right
    
    
    def quick_sort(arr,left,right):
        if left > right:
            return
        par=get_mid(arr,left,right)
        quick_sort(arr,left,par-1)
        quick_sort(arr,par+1,right)

    二分查找

    def binary_search(arr,v):
        mid=len(arr)//2
        if arr[mid]==v:
            return True
        if len(arr)==1:
            return False
        if arr[mid]>v:
            return binary_search(arr[:mid],v)
        else:
            return binary_search(arr[mid+1:],v)
  • 相关阅读:
    jmeter取样器
    【递归】普通递归关系
    7月,开始奋斗吧!
    BZOJ 1503 郁闷的出纳员
    bzoj 3262: 陌上花开
    BZOJ 2286 消耗战
    莫队
    bzoj1483: [HNOI2009]梦幻布丁
    字符串算法模板
    高级数据结构模板
  • 原文地址:https://www.cnblogs.com/orvis/p/11087079.html
Copyright © 2011-2022 走看看