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)}")
相关推荐
北极星日淘3 分钟前
煤炉自动代拍功能开发 | Python 异步任务实现批量下单
开发语言·python·自动化
光之后裔9 分钟前
用自定义数据集微调PP-OCRv5文本检测、识别模型
python·机器学习·ocr
2301_7644413330 分钟前
基于AI的本地文件归档智能管理工具梳理
人工智能·python·算法·目标检测·交互
二十七剑32 分钟前
LangGraph 源码深度解析:Node 节点 Protocol 与 StateNodeSpec 核心机制
开发语言·python
AC赳赳老秦34 分钟前
OpenClaw + 云数据库运维:自动备份、扩容、迁移 RDS/MySQL 云数据库
运维·开发语言·数据库·人工智能·python·mysql·openclaw
Tbisnic36 分钟前
AI大模型学习第十二天:Coze工作流与智能体开发
人工智能·python·ai·大模型·智能体·coze
冷小鱼36 分钟前
高级研发编码习惯:从规范到艺术,再到AI+时代的人机协同
java·开发语言·python·编码习惯
matrixmind81 小时前
HTTPX:Python 下一代 HTTP 客户端
python·其他·http·httpx
怪兽学LLM1 小时前
LeetCode 21 合并两个有序链表:彻底理解虚拟头节点(Dummy)套路
python·leetcode·链表