技术文摘
必看!Python 中 5 大排序算法及实现代码的面试刷题指南
2024-12-31 09:01:54 小编
必看!Python 中 5 大排序算法及实现代码的面试刷题指南
在 Python 编程的世界中,排序算法是至关重要的基础知识,也是面试中经常被考察的重点。本文将为您详细介绍 Python 中 5 大排序算法及其实现代码,助您在面试中轻松应对相关问题。
首先是冒泡排序(Bubble Sort),它通过重复地走访要排序的数列,一次比较两个数据元素,如果顺序不对则进行交换,并一直重复这样的走访操作,直到没有要交换的数据元素为止。
以下是冒泡排序的 Python 代码实现:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1] :
arr[j], arr[j + 1] = arr[j + 1], arr[j]
接下来是插入排序(Insertion Sort),它是构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
插入排序的 Python 代码如下:
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and key < arr[j] :
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
选择排序(Selection Sort)则是每次从未排序部分找出最小的元素,与未排序部分的起始位置元素交换。
其 Python 代码实现为:
def selection_sort(arr):
for i in range(len(arr)):
min_idx = i
for j in range(i + 1, len(arr)):
if arr[min_idx] > arr[j]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
快速排序(Quick Sort)是通过选择一个基准元素,将数列分为小于和大于基准的两部分,然后对这两部分分别进行排序。
快速排序的 Python 代码:
def quick_sort(arr, low, high):
if low < high:
pi = partition(arr, low, high)
quick_sort(arr, low, pi - 1)
quick_sort(arr, pi + 1, high)
def partition(arr, low, high):
pivot = arr[high]
i = (low - 1)
for j in range(low, high):
if arr[j] <= pivot:
i = i + 1
arr[i], arr[j] = arr[j], arr[i]
arr[i + 1], arr[high] = arr[high], arr[i + 1]
return (i + 1)
最后是归并排序(Merge Sort),它将数列不断分成两半,对两半分别排序,然后将排序好的两半合并。
归并排序的 Python 代码:
def merge_sort(arr):
if len(arr) > 1:
mid = len(arr) // 2
L = arr[:mid]
R = arr[mid:]
merge_sort(L)
merge_sort(R)
i = j = k = 0
while i < len(L) and j < len(R):
if L[i] < R[j]:
arr[k] = L[i]
i += 1
else:
arr[k] = R[j]
j += 1
k += 1
while i < len(L):
arr[k] = L[i]
i += 1
k += 1
while j < len(R):
arr[k] = R[j]
j += 1
k += 1
熟练掌握这 5 大排序算法及其代码实现,不仅能让您在面试中展现出扎实的编程基础,还能为您解决实际问题提供有效的思路和方法。希望您通过不断的练习和理解,能够灵活运用这些算法,在编程的道路上越走越远!
- 项目案例:Appium 框架运行实例及自动化实操详解
- 数据科学家必知的 4 个 Python 自动库:开启简单生活
- Kubernetes 中应用程序故障排除的 6 个技巧
- 10 种图形算法的图形阐释
- 构建 ngrok 服务达成内网穿透
- HTTPS 的浅析及抓包剖析
- C 语言中已有“链表”为何还需“数组” 令人懵圈
- Python 高级技巧:一行代码让内存占用减半
- 2020 十大薪资最高的 IT 编程语言排行
- 搜狗开源轻量级 RPC 框架 srpc:高性能且开发门槛低
- 十分钟助您知晓 DevOps 工具
- 5 小时完成 800 个微服务向云端的迁移
- CI 系统的技术抉择及部署流程
- 11 个 Docker 免费上手项目推荐给 IT 新手
- Julia 实力惊人!CSV 数据读取性能远超 R、Python 达 22 倍