Python 中的冒泡排序是什么?举例说明?

冒泡排序是一种排序算法,用于将列表按升序(或降序)排序。这是最简单的排序算法,但效率不高。它可以用于较小的输入大小,但对于较大长度的列表或数组来说时间效率不高。它的时间复杂度是 O(n^2)。然而,这是一个就地排序算法,这意味着它不使用任何额外的空间。因此,它在空间复杂度方面是有效的。然而,它的使用并不多,因为有比冒泡排序更好的排序算法。

冒泡排序是如何工作的?

在冒泡排序中,使用了两个 for 循环。外部 for 循环遍历列表。内部 for 循环还为所有外部循环迭代遍历列表。

冒泡排序的主要操作是比较两个连续的元素。如果第一个元素大于下一个元素,则交换两者,以便较小的元素排在前面,较大的元素进行back.In一次外循环迭代,列表中最大的元素位于最后一个索引处。在外循环的第二次迭代中,列表的第二大元素位于倒数第二个索引处,依此类推。因此,我们在所有迭代结束时得到排序列表。

借助一个例子,我们可以更好地理解。

例子

我们需要对以下列表进行排序。

52134

外环=1

52134

5>2,因此交换两者

25134

5>1,因此交换两者

21534

5>3,因此交换两者

21354

5>4,因此交换两者

21354

(第一次外层迭代后,最大元素 5 已到达最后一个索引处)

外环=2

21354

2>1,因此交换

12354

无需交换

12345

无需交换

12345

正如我们所看到的,列表在第二次外部迭代本身中排序。但是外循环将再迭代 3 次,不再进行交换操作。因此,示例中仅显示了 2 次迭代。有时,列表可以在第一次迭代中排序。有时,列表可能在最后一次迭代中排序。因此,外循环将始终迭代 n 次。

示例

def bubble_sort(arr):

   for i in range(len(arr)):

      for j in range(len(arr)-1):

         if(arr[j]>arr[j+1]):

            temp=arr[j]

            arr[j]=arr[j+1]

            arr[j+1]=temp

   return arr

array=[2,3,1,5,4]

print(bubble_sort(array))

输出结果
[1, 2, 3, 4, 5]

以上是 Python 中的冒泡排序是什么?举例说明? 的全部内容, 来源链接: utcz.com/z/338805.html

回到顶部