• 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)
  • 相关阅读:
    (项目实战三)响应式首页内容介绍
    (项目实战二)响应式轮播图
    (一)简介
    (项目实战一)响应式导航
    HttpURLConnection 411错误解决
    JMeter使用(Linux)
    性能测试工具比较
    Java常见加密算法
    HttpURLConnection发送请求
    Java AES加密案例
  • 原文地址:https://www.cnblogs.com/orvis/p/11087079.html
Copyright © 2020-2023  润新知