📅  最后修改于: 2023-12-03 15:36:16.169000             🧑  作者: Mango
下面是一个程序,可以将自然数进行排序。注意这里所说的自然数是指大于等于零的整数。排序使用的是冒泡排序算法。待排序的数列为:
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
arr = [20, 1555, 63.99, 52, 60, -78, 0, -2, -32]
sorted_arr = bubble_sort(arr)
print(sorted_arr)
[-78, -32, -2, 0, 20, 52, 60, 63.99, 1555]
排序后的结果为升序排列,即从小到大排序。可以看到,排序后的结果符合预期,包含了所有待排序的元素。
冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历待排序的数列,一次比较两个元素,如果它们的顺序错误就交换它们的位置,直到整个数列排序完毕。时间复杂度为O(n^2)。
具体实现时,从数列的左端开始比较相邻两个数,如果左边的数大于右边的数,则交换它们的位置。即将大的数向右移,小的数向左移。一共需要进行n-1轮比较,每轮比较之后,就有一个数排好了位置。通过每一轮比较,将待排序列中最大或最小的数值放到合适的位置上,最终实现排序。