简单算法学习

python冒泡排序

import random

array = [random.randint(1,100) for n in range(100)]              #  0      7
for i in range(len(array)-1):        # 比较轮数                    #  1      6
    for j in range(len(array)-1-i):  # 每轮次数                    #  2      5
        if array[j] > array[j+1]:                                 #  3      4
            array[j],array[j+1] = array[j+1],array[j]

print(array)

python二分查找

# 纯算法的方式
arr_list = [i for i in range(1, 10)]
print(arr_list)
number = 9
count = 0
left = 0
right = len(arr_list) - 1

while left <= right:
    middle = (left + right) // 2
    print(middle)
    count += 1
    if number > arr_list[middle]:
        left = middle + 1
    elif number < arr_list[middle]:
        right = middle - 1
    else:
        print(f'数字{number}已找到,索引值为{middle}')
        break
else:
    print(f'数字{number}没有找到')
print(f'一共用了{count}次查找')



# 递归
arr_list = [i for i in range(1, 10)]

def binary_search(number, left, right):
    if left <= right:
        middle = (left + right) // 2
        if number < arr_list[middle]:
            right = middle - 1
        elif number > arr_list[middle]:
            left = middle + 1
        else:
            return middle
        return binary_search(number, left, right)
    else:
        return -1


print(binary_search(1, 0, len(arr_list) - 1))
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值