24大数据 15-2 线性查找和选择排序

15-2 12.11

python 复制代码
def binary_search(arr, target):
    left = 0
    right = len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid  # 找到了,返回索引
        elif arr[mid] < target:
            left = mid + 1  # 目标在右边
        else:
            right = mid - 1  # 目标在左边
    return -1  # 返回-1表示没找到

test_list = [1, 3, 5, 7, 9, 11, 13, 15]
print("查找7的位置:", binary_search(test_list, 7))  # 应该返回3
print("查找9的位置:", binary_search(test_list, 9))  # 应该返回4
print("查找8的位置:", binary_search(test_list, 8))  # 应该返回-1
'''
线性查找
线性查找指按一定的顺序从头开始检查数组中每一个元素,
直到找到所要寻找的特定值为止。
'''
def search(arr, n, x):
    for i in range(0, n):
        if (arr[i] == x):
            return i
    return -1
# 在数组 arr 中查找字符 D
arr = ['A', 'B', 'C', 'D', 'E']
x = 'D'
n = len(arr)
result = search(arr, n, x)
if (result == -1):
    print("元素不在数组中")
else:
    print("元素在数组中的索引为", result)

'''
选择排序
工作原理:首先在未排序序列中找到最小(大)元素,
存放到排序序列的起始位置。
然后,再从剩余未排序元素中继续寻找最小(大)元素,
然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
'''
def paixu(shuzu):
    qi=[]
    while len(shuzu)>0:
        qi.append(max(shuzu))
        shuzu.remove(max(shuzu))
    return qi
luan=[90,50,26,98,45,21,26,2,87,51]
print(f"已排好序,顺序为{paixu(luan)}")
相关推荐
默_笙2 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
qq_426003962 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫2 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技2 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读2 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时2 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
奇思妙想聪明勤奋的小羊2 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd1233 天前
2026年第38周GitHub趋势周报
python·科技·github
IZero073 天前
Jev 与 Laya
python·语言模型