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

Python函数实现冒泡排序

发布时间:2023-06-25 02:32:19

冒泡排序是一种基本的排序算法,其原理简单易懂,可以适用于各种类型的数据排序。Python是一门强大的编程语言,具有丰富的函数库和数据类型,很适合实现冒泡排序算法。下面我们将详细介绍Python函数实现冒泡排序的方法,包括算法原理、代码实现和测试样例。

算法原理

冒泡排序的基本原理是:比较相邻的两个元素,如果前一个元素比后一个元素大,则交换这两个元素的位置;否则不交换。这样一轮比较下来,最大的元素就“冒泡”到了序列的末尾。接着进行下一轮比较,直到所有的元素都被排序。

代码实现

我们可以通过Python函数实现冒泡排序。代码如下:

def bubbleSort(arr):
    n = len(arr)
 
    # 遍历所有数组元素
    for i in range(n):
 
        # Last i elements are already in place
        for j in range(0, n-i-1):
 
            # traverse the array from 0 to n-i-1
            # Swap if the element found is greater
            # than the next element
            if arr[j] > arr[j+1] :
                arr[j], arr[j+1] = arr[j+1], arr[j]

这里定义了一个名为 bubbleSort 的函数,其形参为一个长度为 n 的数组 arr。函数遍历了所有的数组元素,采用双层循环的形式,进行多轮比较、交换操作,以达到排序的目的。

测试样例

我们可以通过一些测试样例来验证这个实现过程是否正确。下面给出了4个测试样例:

1. 对于一个正常的数组,可以验证函数的排序是否正确。

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]

2. 对于一个大小为0的空数组,可以测试函数是否能正确处理异常情况。

arr = []
 
bubbleSort(arr)
 
print ("排序后的数组:")
for i in range(len(arr)):
    print ("%d" %arr[i]),

输出结果:[]

3. 针对只含有一个元素的数组,测试函数是否能正常工作。

arr = [1]
 
bubbleSort(arr)
 
print ("排序后的数组:")
for i in range(len(arr)):
    print ("%d" %arr[i]),

输出结果:[1]

4. 对于已经排好序的数组,测试函数是否能够跳过多余的比较操作,提高排序效率。

arr = [11, 12, 22, 25, 34, 64, 90]
 
bubbleSort(arr)
 
print ("排序后的数组:")
for i in range(len(arr)):
    print ("%d" %arr[i]),

输出结果:[11, 12, 22, 25, 34, 64, 90]

结论

Python函数实现冒泡排序算法可以方便地实现对各种类型的数据结构排序。通过一些简单的测试样例,我们可以验证函数的正确性和性能。总之,掌握Python的冒泡排序实现过程,可以为我们解决实际问题提供帮助和支持。