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)}")
相关推荐
idingzhi2 分钟前
A股量化策略日报(2026年05月22日)
android·开发语言·python·kotlin
song5018 分钟前
多卡训练加速:HCCL 集合通信实战
分布式·python·flutter·ci/cd·分类
江上清风山间明月27 分钟前
如何将python开发的window应用打包成exe
开发语言·python·exe·打包
知识分享小能手29 分钟前
Flask入门学习教程,从入门到精通, Flask模板 — 完整知识点与案例代码 (2)
python·学习·flask
不懒不懒34 分钟前
基于 Flask —— 异步任务处理接口服务
后端·python·flask
happybasic37 分钟前
Python库升级标准流程~
linux·前端·python
彦为君42 分钟前
JavaSE-11-BIO/NIO/AIO(多人聊天室)
java·开发语言·python·ai·nio
恣艺44 分钟前
Python 实用工具与机器学习入门:Rich + Tqdm + Faker + Schedule + Scikit-learn
python·机器学习·scikit-learn
测试员周周1 小时前
【Appium 系列】第14节-断言与验证 — Validator 的设计
android·人工智能·python·功能测试·ios·单元测试·appium
Hanniel1 小时前
Python __slots__ 入门指南
开发语言·python·性能优化