Menggabungkan berbilang senarai yang diisih ke dalam senarai tersusun tunggal ialah tugas biasa dalam pengaturcaraan Python. Untuk mencapai matlamat ini, seseorang biasanya mempertimbangkan untuk menggunakan fungsi sort() terbina dalam. Walau bagaimanapun, wujud pendekatan yang lebih cekap dikenali sebagai algoritma cantuman.
Algoritma cantuman beroperasi dengan membahagikan senarai input secara rekursif kepada subset yang lebih kecil, menyusunnya dan kemudian menggabungkan keputusan. Pendekatan ini mempunyai kerumitan pengiraan O(n log n), dengan n ialah jumlah bilangan elemen dalam senarai gabungan.
Melaksanakan algoritma gabungan dalam Python melibatkan langkah berikut:
<code class="python">def merge(list1, list2): """Merge two sorted lists into a single sorted list.""" result = [] while list1 and list2: if list1[0] < list2[0]: result.append(list1[0]) del list1[0] else: result.append(list2[0]) del list2[0] result.extend(list1) result.extend(list2) return result</code>
Satu lagi penyelesaian cekap untuk menggabungkan senarai diisih dalam Python ialah menggunakan fungsi gabungan daripada modul heapq. Fungsi ini direka khusus untuk menggabungkan iterable yang diisih dan mempunyai kerumitan masa O(n), dengan n ialah jumlah bilangan elemen.
Kod berikut menunjukkan cara menggunakan fungsi heapq.merge():
<code class="python">import heapq list1 = [1, 5, 8, 10, 50] list2 = [3, 4, 29, 41, 45, 49] result = list(heapq.merge(list1, list2)) print(result) # Output: [1, 3, 4, 5, 8, 10, 29, 41, 45, 49, 50]</code>
Sama ada melaksanakan algoritma gabungan atau menggunakan fungsi heapq.merge(), Python menyediakan penyelesaian yang cekap untuk menggabungkan senarai yang diisih dengan kerumitan pengiraan yang minimum.
Atas ialah kandungan terperinci Apakah Cara Paling Cekap untuk Menggabungkan Senarai Isih dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!