Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk melaksanakan algoritma jenis gelembung menggunakan Python?

Bagaimana untuk melaksanakan algoritma jenis gelembung menggunakan Python?

WBOY
Lepaskan: 2023-09-21 11:03:30
asal
1422 orang telah melayarinya

Bagaimana untuk melaksanakan algoritma jenis gelembung menggunakan Python?

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)
Salin selepas log masuk

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]

Dalam kod di atas, kami menggunakan satu set contoh ujian untuk mengesahkan ketepatan algoritma pengisihan. Dalam contoh ini, kami menggunakan senarai 7 elemen integer dan menghantarnya ke fungsi 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:

Algoritma isihan buih ialah algoritma pengisihan yang mudah tetapi berkesan dengan membandingkan elemen bersebelahan dan menukar kedudukan, dan mengalihkan elemen terbesar ke peringkat akhir langkah demi langkah tujuan. Melalui contoh algoritma isihan gelembung yang ditulis dalam Python, kita dapat memahami dengan jelas idea dan pelaksanaan algoritma tersebut. Sama ada anda seorang pemula atau pembangun yang berpengalaman, anda boleh meningkatkan pemahaman dan aplikasi algoritma dan pengaturcaraan anda dengan memahami dan mempraktikkan algoritma isihan gelembung. #🎜🎜#

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan