Bagaimana untuk menggunakan Python untuk melaksanakan algoritma isihan gelembung?
Algoritma isihan gelembung ialah algoritma pengisihan yang mudah tetapi berkesan. Berikut akan menunjukkan cara menggunakan Python untuk melaksanakan algoritma isihan gelembung melalui contoh kod tertentu.
def bubble_sort(arr): n = len(arr) # 外层循环控制比较的轮数 for i in range(n - 1): # 内层循环控制每轮的比较次数 for j in range(n - i - 1): # 如果相邻的两个元素顺序不正确,则交换它们的位置 if arr[j] > arr[j + 1]: arr[j], arr[j + 1] = arr[j + 1], arr[j] return arr # 测试示例 arr = [64, 34, 25, 12, 22, 11, 90] sorted_arr = bubble_sort(arr) print("排序后的数组:", sorted_arr)
Dalam kod di atas, kami mentakrifkan fungsi bernama bubble_sort
, yang menerima senarai sebagai parameter dan mengembalikan senarai yang diisih. Bahagian teras isihan gelembung ialah gelung bersarang dua peringkat. Gelung luar mengawal bilangan pusingan perbandingan Setiap pusingan perbandingan menggerakkan elemen terbesar dalam bahagian yang tidak diisih ke penghujung. Gelung dalam mengawal bilangan perbandingan setiap pusingan, dengan membandingkan dua elemen bersebelahan dan menukar kedudukan mereka jika ia tidak dalam susunan yang betul. Bilangan gelung dan pertukaran bertambah dengan saiz jujukan yang hendak diisih, jadi kerumitan masa isihan gelembung ialah O(n^2). bubble_sort
的函数,该函数接受一个列表作为参数,并返回排序后的列表。冒泡排序的核心部分是两层嵌套的循环。外层循环控制比较的轮数,每一轮比较都会使得未排序部分中最大的元素移到最后。内层循环控制每轮比较的次数,通过比较相邻的两个元素,如果它们的顺序不正确,则交换它们的位置。循环的次数和交换的次数都随着待排序序列的大小而增加,因此冒泡排序的时间复杂度为O(n^2)。
在上述代码中,我们使用了一组测试示例来验证排序算法的正确性。在这个例子中,我们使用了一个包含7个元素的整数列表,并将其传递给bubble_sort
函数。运行程序后,控制台将输出排序后的列表。对于给定的测试示例,输出应该是 [11, 12, 22, 25, 34, 64, 90]
bubble_sort
. Selepas menjalankan program, konsol akan mengeluarkan senarai yang diisih. Untuk contoh ujian yang diberikan, output hendaklah [11, 12, 22, 25, 34, 64, 90]
. Di luar contoh mudah ini, algoritma isihan gelembung boleh digunakan pada sebarang jenis elemen yang setanding. Anda boleh menggunakan isihan gelembung untuk mengisih integer, nombor titik terapung, rentetan, dsb. Pada masa yang sama, kami juga boleh mengoptimumkan algoritma pengisihan mengikut keperluan kami sendiri, seperti menambah bendera untuk menentukan sama ada pengisihan telah selesai, yang boleh mengurangkan bilangan perbandingan yang tidak perlu.
Ringkasan:
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan algoritma jenis gelembung menggunakan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!