Python函数实现排序算法,如冒泡排序、选择排序等
排序算法是计算机科学的基础知识之一。在实际开发和应用中,需要对一些数据进行排序,以便更有效地处理和查询这些数据。Python提供了丰富的排序算法以及方便实用的API,使得排序变得异常简单。
本文将介绍冒泡排序、选择排序和快速排序三种常见的排序算法,以及如何在Python中实现这些算法。
一、冒泡排序
冒泡排序是一种简单的排序算法,它的基本思想是从 个元素开始,不断比较相邻的两个元素,如果前一个元素大于后一个元素,则交换它们的位置,直到所有元素都被比较过。
Python实现冒泡排序的代码如下:
def bubbleSort(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]
arr = [64, 34, 25, 12, 22, 11, 90]
bubbleSort(arr)
print ("排序后的数组:")
for i in range(len(arr)):
print ("%d" %arr[i]),
运行结果:
排序后的数组:
11
12
22
25
34
64
90
二、选择排序
选择排序是另一种简单的排序算法,它的基本思想是在一个无序数组中,选择最小的数与 个元素交换位置,然后在剩余的元素中找出最小的数,与第二个元素交换位置,以此类推,直到所有元素都被排序。
Python实现选择排序的代码如下:
def selectionSort(arr):
n = len(arr)
for i in range(n-1):
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]
arr = [64, 34, 25, 12, 22, 11, 90]
selectionSort(arr)
print ("排序后的数组:")
for i in range(len(arr)):
print ("%d" %arr[i]),
运行结果:
排序后的数组:
11
12
22
25
34
64
90
三、快速排序
快速排序是排序算法中的经典算法,其基本思想是在一个无序数组中选择一个主元素将数组分为两部分,比主元素小的放在左边,比主元素大的放在右边,然后分别对左右两个子数组进行快速排序,最终将所有子数组合并起来,即可得到排好序的数组。
Python实现快速排序的代码如下:
def partition(arr, low, high):
i = (low-1)
pivot = arr[high]
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)
def quickSort(arr, low, high):
if low < high:
pi = partition(arr, low, high)
quickSort(arr, low, pi-1)
quickSort(arr, pi+1, high)
arr = [64, 34, 25, 12, 22, 11, 90]
n = len(arr)
quickSort(arr, 0, n-1)
print ("排序后的数组:")
for i in range(n):
print ("%d" %arr[i]),
运行结果:
排序后的数组:
11
12
22
25
34
64
90
总结
本文介绍了三种常见的排序算法(冒泡排序、选择排序和快速排序)以及在Python中实现这些算法的代码。排序算法在实际开发和应用中起着至关重要的作用,需要我们掌握其基本原理和实现方法。对排序算法的了解,有助于我们提高程序的效率和准确性,更好的完成实际开发任务。
