AML 算法实现及Notes(持续更新)

**

算法实现 for

1. Linear search

array = [4,2,15,3,7,6,5,9]
z = 6

def Linear_search(z):
    for i in range(len(array)):
        if array[i] == z:
            return i
    return -1

print(Linear_search(z))

2. Selection sort

def Selection_sort(array):
    for i in range(len(array)):
        nextMin = array[i]
        nextMinIndex = i
        for j in range(i+1,len(array)):
            if array[j] < nextMin :
                nextMin = array[j]
                nextMinIndex = j
        array[nextMinIndex] = array[i]
        array[i] = nextMin
    return array

print(Selection_sort(array))

3. Binary search

a = [1,2,3,4,5,6,7,8]
val = 6
def Binary_search(val,array):
    l = 0
    r = len(array) -1
    while (l<=r):
        m = int((l+r)/2)
        if(array[m] < val):
             l = m+1
        elif (array[m] > val):
             r = m-1
        else:
            return m
    return -1

print(Binary_search(val,a))

4. Recursive_binary_search

aa = [1,2,3,4,5,6,7,8]
val = 6
def Recursive_binary_search(X,z,l,r):
    if l > r:
        return -1
    m = int((l+r)/2)
    if X[m] < z:
        return Recursive_binary_search(X,z,m+1,r)
    elif X[m]>z:
        return Recursive_binary_search(X,z,l,m-1)
    else:
        return m

print(Recursive_binary_search(aa,val,0,len(aa)))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值