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)}")
相关推荐
暴风鱼划水12 小时前
大型语言模型(入门篇)C
python·语言模型·大模型·llm
人工智能AI技术12 小时前
【Agent从入门到实践】20 LLM的基础使用:API调用(OpenAI、国产大模型),程序员快速上手
人工智能·python
云上凯歌12 小时前
01_AI工具平台项目概述.md
人工智能·python·uni-app
R-sz12 小时前
app登录接口实现,基于JWT的APP登录认证系统实现方案
java·开发语言·python
WangYaolove131412 小时前
基于图像取证技术研究与实现(源码+文档)
python·django·毕业设计·源码·计算机源码
程序员敲代码吗12 小时前
用Python监控系统日志并发送警报
jvm·数据库·python
qwerasda12385212 小时前
YOLO13-SEG-RFAConv:隧道围岩病理缺陷识别的改进方法与底层逻辑
python
Python大数据分析@12 小时前
Claude Code、Cursor、Trae、OpenCode怎么选?
python
q_354888515312 小时前
机器学习:python共享单车数据分析系统 可视化 Flask框架 单车数据 骑行数据 大数据 机器学习 计算机毕业设计✅
人工智能·python·机器学习·数据分析·flask·推荐算法·共享单车
小北方城市网12 小时前
接口性能优化实战:从秒级到毫秒级
java·spring boot·redis·后端·python·性能优化