欢迎访问宙启技术站
智能推送

Python函数实现排序算法,如冒泡排序、选择排序等

发布时间:2023-06-25 02:10:13

排序算法是计算机科学的基础知识之一。在实际开发和应用中,需要对一些数据进行排序,以便更有效地处理和查询这些数据。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中实现这些算法的代码。排序算法在实际开发和应用中起着至关重要的作用,需要我们掌握其基本原理和实现方法。对排序算法的了解,有助于我们提高程序的效率和准确性,更好的完成实际开发任务。