本文介绍如何使用 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]
return arr
选择排序
选择排序是一种简单直观的排序算法。它的工作原理如下:首先在未排序的数列中找到最小元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
def selection_sort(arr):
n = len(arr)
for i in range(n):
min_idx = i
for j in range(i+1, n):
if arr[min_idx] > arr[j]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr
插入排序
插入排序是一种简单直观的排序算法。它的工作原理如下:从第一个元素开始,该元素可以认为已经被排序;取出下一个元素,在已经排序的元素序列中从后向前扫描;如果该元素(已排序)大于新元素,将该元素移到下一位置;重复步骤 3,直到找到已排序的元素小于或者等于新元素的位置;将新元素插入到该位置后;重复步骤 2~5。
def insertion_sort(arr):
n = len(arr)
for i in range(1, n):
key = arr[i]
j = i-1
while j >= 0 and key < arr[j] :
arr[j+1] = arr[j]
j -= 1
arr[j+1] = key
return arr
冒泡排序
冒泡排序是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就将它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换的元素。
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]
return arr
选择排序
选择排序是一种简单直观的排序算法。它的工作原理如下:首先在未排序的数列中找到最小元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
def selection_sort(arr):
n = len(arr)
for i in range(n):
min_idx = i
for j in range(i+1, n):
if arr[min_idx] > arr[j]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr
插入排序
插入排序是一种简单直观的排序算法。它的工作原理如下:从第一个元素开始,该元素可以认为已经被排序;取出下一个元素,在已经排序的元素序列中从后向前扫描;如果该元素(已排序)大于新元素,将该元素移到下一位置;重复步骤 3,直到找到已排序的元素小于或者等于新元素的位置;将新元素插入到该位置后;重复步骤 2~5。
def insertion_sort(arr):
n = len(arr)
for i in range(1, n):
key = arr[i]
j = i-1
while j >= 0 and key < arr[j] :
arr[j+1] = arr[j]
j -= 1
arr[j+1] = key
return arr
总结
本文介绍了三种不同的排序算法,分别是冒泡排序、选择排序和插入排序。实现这些算法可以帮助我们更好地理解它们的工作原理,同时也为我们提供了一些排序的思想和方法。希望本文对读者有所帮助。
本文介绍了Python中实现的三种排序算法:冒泡排序、选择排序和插入排序。冒泡排序通过重复遍历并交换相邻元素实现;选择排序通过每次找到最小元素放到起始位置;插入排序则按顺序插入元素到已排序部分。这些算法有助于理解排序工作原理。

被折叠的 条评论
为什么被折叠?



