Java教程

算法学习

本文主要是介绍算法学习,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#二分法
def erfenfa(lis,target):
    start,end=0,len(lis)-1
    while True:
        if end-start<=1:
            if target==lis[start]:
                return start
            elif target==lis[end]:
                return end
            else:
                return -1
        mid = (start+end)//2
        if lis[mid] <=target:
            start = mid
        else:
            end = mid


lis=[1,2,3,5,7,8]

print(erfenfa(lis,9))



# 快速排序法
def quick(arr):
    if not arr:
        return []
    mid = arr[0]
    left = quick([i for i in arr[1:] if i<mid])
    right = quick([i for i in arr[1:] if i>=mid])
    return left + [mid] + right


lis = [1,3,5,7,2,43,4,8,5,3,1]
print(quick(lis))
这篇关于算法学习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!