python的算法

简介: python的算法

Python的算法

在Python中,算法是解决问题的核心,无论是简单的数据排序还是复杂的搜索问题。以下是三种常见的算法:冒泡排序、选择排序和二分搜索,它们在Python中的实现方式和应用。

冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。下面是冒泡排序在Python中的实现:

 

 

def bubble_sort(arr):

 

n = len(arr)

 

for i in range(n):

 

# 创建一个标志位,用于优化,如果在一趟遍历中没有发生交换,说明已经有序

 

swapped = False 

 

for j in range(0, n - i - 1):

 

if arr[j] > arr[j + 1]:

 

arr[j], arr[j + 1] = arr[j + 1], arr[j]

 

# 发生了交换,标志位设为True

 

swapped = True 

 

# 如果在内层循环中没有交换,说明数组已经有序,可以退出外层循环

 

if not swapped:

 

break 

 

return arr

 

 

 

# 示例

 

numbers = [64, 34, 25, 12, 22, 11, 90]

 

print(bubble_sort(numbers))

选择排序是一种简单直观的排序算法。它的工作原理是首先在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。以下是选择排序在Python中的实现:

 

 

def selection_sort(arr):

 

for i in range(len(arr)):

 

# 找到未排序部分的最小值的索引

 

min_idx = i

 

for j in range(i+1, len(arr)):

 

if arr[j] < arr[min_idx]:

 

min_idx = j

 

# 将找到的最小值与第i个位置的值交换

 

arr[i], arr[min_idx] = arr[min_idx], arr[i]

 

return arr

 

 

 

# 示例

 

numbers = [64, 34, 25, 12, 22, 11, 90]

 

print(selection_sort(numbers))

二分搜索,也称为折半搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。以下是二分搜索在Python中的实现:

 

 

def binary_search(arr, target):

 

low = 0 

 

high = len(arr) - 1 

 

 

 

while low <= high:

 

mid = (low + high) // 2 

 

if arr[mid] == target:

 

return mid # 元素找到,返回索引

 

elif arr[mid] < target:

 

low = mid + 1 

 

else:

 

high = mid - 1 

 

return -1 # 没有找到元素,返回-1

 

 

 

# 示例

 

sorted_array = [1, 3, 5, 7, 9]

 

target = 5 

 

result = binary_search(sorted_array, target)

 

 

 

if result != -1:

 

print(f"元素在数组中的索引为: {result}")

 

else:

 

print("元素不在数组中")

这些算法在Python中的实现相对简单明了,并且可以通过修改和优化来适应不同的应用场景。在实际应用中,根据数据的特性和需求,选择合适的算法可以大大提高程序的效率和性能。

 

相关文章
|
9月前
|
算法 搜索推荐 JavaScript
基于python智能推荐算法的全屋定制系统
本研究聚焦基于智能推荐算法的全屋定制平台网站设计,旨在解决消费者在个性化定制中面临的选择难题。通过整合Django、Vue、Python与MySQL等技术,构建集家装设计、材料推荐、家具搭配于一体的一站式智能服务平台,提升用户体验与行业数字化水平。
|
9月前
|
存储 监控 算法
监控电脑屏幕的帧数据检索 Python 语言算法
针对监控电脑屏幕场景,本文提出基于哈希表的帧数据高效检索方案。利用时间戳作键,实现O(1)级查询与去重,结合链式地址法支持多条件检索,并通过Python实现插入、查询、删除操作。测试表明,相较传统列表,检索速度提升80%以上,存储减少15%,具备高实时性与可扩展性,适用于大规模屏幕监控系统。
248 5
|
10月前
|
存储 算法 调度
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
454 26
|
10月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
415 0
|
10月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于改进型A*算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于改进型A*算法的机器人路径规划(Python代码实现)
632 0
|
10月前
|
机器学习/深度学习 编解码 算法
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
737 4
|
10月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
1158 4
|
10月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于深度优先搜索(Depth-First-Search,DFS)算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于深度优先搜索(Depth-First-Search,DFS)算法的机器人路径规划(Python代码实现)
443 3
|
10月前
|
算法 机器人 定位技术
【机器人路径规划】基于流场寻路算法(Flow Field Pathfinding)的机器人路径规划(Python代码实现)
【机器人路径规划】基于流场寻路算法(Flow Field Pathfinding)的机器人路径规划(Python代码实现)
571 4
机器学习/深度学习 算法 自动驾驶
1489 0

推荐镜像

更多