Rumah pembangunan bahagian belakang Tutorial Python Pelajari dan laksanakan algoritma isihan pemilihan dalam Python

Pelajari dan laksanakan algoritma isihan pemilihan dalam Python

Feb 03, 2024 am 09:04 AM
prinsip capai jenis pemilihan susunan

Pelajari dan laksanakan algoritma isihan pemilihan dalam Python

Fahami prinsip dan pelaksanaan isihan pemilihan dalam Python

Isih Pilihan ialah algoritma pengisihan yang mudah dan intuitif ialah melintasi tatasusunan setiap kali dan memilih yang terkecil (atau terbesar) dalam bahagian yang tidak diisih , tukar kedudukannya dengan elemen pertama bahagian yang tidak diisih, dan kemudian teruskan memilih elemen terkecil (atau terbesar) daripada bahagian yang tidak diisih, dan seterusnya, sehingga keseluruhan tatasusunan diisih. Kerumitan masa isihan pemilihan ialah O(n^2), dan ia merupakan algoritma pengisihan yang tidak stabil.

Yang berikut menggunakan contoh kod khusus untuk menggambarkan proses pelaksanaan pengisihan pemilihan.

def selection_sort(arr):
    n = len(arr)
    for i in range(n-1):
        min_idx = i
        for j in range(i+1, n):
            if arr[j] < arr[min_idx]:
                min_idx = j
        arr[i], arr[min_idx] = arr[min_idx], arr[i]
Salin selepas log masuk

Di atas ialah kod pelaksanaan algoritma isihan pemilihan. Seterusnya kami akan menerangkan prinsip dan proses kod ini langkah demi langkah.

Pertama, kami mentakrifkan fungsi selection_sort, yang menerima arr tatasusunan untuk diisih sebagai parameter.

Dalam badan fungsi, kita mula-mula mendapat panjang n tatasusunan Ini adalah untuk mengulang n-1 kali, kerana setiap lelaran akan meletakkan elemen terkecil dalam kedudukan yang betul, jadi elemen terakhir tidak perlu diisih.

Kemudian, kami menggunakan dua gelung bersarang untuk melaksanakan proses pengisihan pemilihan. Gelung luar pergi dari 0 hingga n-1, mewakili kedudukan permulaan i bahagian yang hendak diisih.

Gelung dalam ialah dari i+1 hingga n, mewakili unsur j dalam bahagian yang hendak diisih. Kami membandingkan j dengan elemen pada kedudukan permulaan i Jika j lebih kecil daripada elemen pada kedudukan permulaan i, min_idx dikemas kini kepada j, menunjukkan bahawa j ialah indeks unsur terkecil yang ditemui setakat ini.

Apabila gelung dalam tamat, kami akan menukar kedudukan elemen terkecil yang ditemui dengan elemen pada kedudukan permulaan i, supaya lelaran semasa akan meletakkan elemen terkecil pada kedudukan yang betul.

Dengan lelaran n-1, kami boleh memastikan keseluruhan tatasusunan diisih dalam tertib menaik.

Seterusnya, kita boleh menggunakan kod berikut untuk menguji kesan isihan pemilihan:

arr = [64, 25, 12, 22, 11]
selection_sort(arr)
print("排序后的数组:")
for i in range(len(arr)):
    print(arr[i], end=" ")
Salin selepas log masuk

Hasil output ialah: 11 12 22 25 64, yang bermaksud tatasusunan telah diisih dalam tertib menaik.

Dalam penggunaan sebenar, isihan pemilihan adalah kurang cekap, jadi kami lebih suka menggunakan algoritma pengisihan lain yang lebih cekap, seperti isihan cepat atau isihan gabungan. Walau bagaimanapun, pengisihan pemilihan ialah algoritma pengisihan yang mudah dan mudah difahami, yang membantu pemula untuk memahami prinsip asas dan idea algoritma pengisihan.

Ringkasnya, pengisihan pemilihan ialah memilih elemen terkecil (atau terbesar) daripada bahagian yang tidak diisih setiap kali, meletakkannya di hujung bahagian yang diisih, dan melalui berbilang lelaran, akhirnya mencapai tujuan memesan keseluruhan tatasusunan. Menguasai prinsip dan pelaksanaan jenis pemilihan adalah sangat penting untuk pemahaman yang mendalam tentang algoritma pengisihan dan peningkatan kebolehan pengaturcaraan.

Atas ialah kandungan terperinci Pelajari dan laksanakan algoritma isihan pemilihan dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Adakah saya perlu menggunakan Flexbox di tengah gambar bootstrap? Adakah saya perlu menggunakan Flexbox di tengah gambar bootstrap? Apr 07, 2025 am 09:06 AM

Terdapat banyak cara untuk memusatkan gambar bootstrap, dan anda tidak perlu menggunakan Flexbox. Jika anda hanya perlu berpusat secara mendatar, kelas pusat teks sudah cukup; Jika anda perlu memusatkan elemen secara menegak atau berganda, Flexbox atau Grid lebih sesuai. Flexbox kurang serasi dan boleh meningkatkan kerumitan, manakala grid lebih berkuasa dan mempunyai kos pengajian yang lebih tinggi. Apabila memilih kaedah, anda harus menimbang kebaikan dan keburukan dan memilih kaedah yang paling sesuai mengikut keperluan dan keutamaan anda.

Apakah sepuluh platform perdagangan mata wang maya? Apakah sepuluh platform perdagangan mata wang maya? Feb 20, 2025 pm 02:15 PM

Dengan populariti kriptografi, platform perdagangan mata wang maya telah muncul. Sepuluh platform perdagangan mata wang maya teratas di dunia disenaraikan seperti berikut mengikut jumlah transaksi dan bahagian pasaran: Binance, Coinbase, FTX, Kucoin, Crypto.com, Kraken, Huobi, Gate.io, Bitfinex, Gemini. Platform ini menawarkan pelbagai perkhidmatan, dari pelbagai pilihan cryptocurrency untuk perdagangan derivatif, sesuai untuk peniaga yang berbeza -beza.

10 platform perdagangan cryptocurrency teratas, sepuluh aplikasi platform perdagangan mata wang yang disyorkan 10 platform perdagangan cryptocurrency teratas, sepuluh aplikasi platform perdagangan mata wang yang disyorkan Mar 17, 2025 pm 06:03 PM

Sepuluh platform perdagangan cryptocurrency teratas termasuk: 1. Okx, 2. Binance, 3. Gate.io, 4. Kraken, 5. Huobi, 6. Coinbase, 7. Kucoin, 8 crypto.com, 9. Keselamatan, kecairan, yuran pengendalian, pemilihan mata wang, antara muka pengguna dan sokongan pelanggan harus dipertimbangkan ketika memilih platform.

Cara menyesuaikan pertukaran terbuka bijan ke dalam bahasa Cina Cara menyesuaikan pertukaran terbuka bijan ke dalam bahasa Cina Mar 04, 2025 pm 11:51 PM

Bagaimana cara menyesuaikan pertukaran terbuka bijan ke bahasa Cina? Tutorial ini merangkumi langkah -langkah terperinci mengenai komputer dan telefon bimbit Android, dari penyediaan awal hingga proses operasi, dan kemudian menyelesaikan masalah biasa, membantu anda dengan mudah menukar antara muka pertukaran terbuka ke Cina dan cepat memulakan dengan platform perdagangan.

10 platform perdagangan mata wang maya teratas 2025 Aplikasi Perdagangan Cryptocurrency Kedudukan Sepuluh Teratas 10 platform perdagangan mata wang maya teratas 2025 Aplikasi Perdagangan Cryptocurrency Kedudukan Sepuluh Teratas Mar 17, 2025 pm 05:54 PM

Sepuluh Platform Perdagangan Mata Wang Maya 2025: 1. Okx, 2. Binance, 3. Gate.io, 4. Kraken, 5. Huobi, 6 Coinbase, 7. Kucoin, 8. Crypto.com, 9. Keselamatan, kecairan, yuran pengendalian, pemilihan mata wang, antara muka pengguna dan sokongan pelanggan harus dipertimbangkan ketika memilih platform.

Cara Mengira C-SubScript 3 Subscript 5 C-SubScript 3 Subscript 5 Algoritma Tutorial Cara Mengira C-SubScript 3 Subscript 5 C-SubScript 3 Subscript 5 Algoritma Tutorial Apr 03, 2025 pm 10:33 PM

Pengiraan C35 pada dasarnya adalah matematik gabungan, yang mewakili bilangan kombinasi yang dipilih dari 3 dari 5 elemen. Formula pengiraan ialah C53 = 5! / (3! * 2!), Yang boleh dikira secara langsung oleh gelung untuk meningkatkan kecekapan dan mengelakkan limpahan. Di samping itu, memahami sifat kombinasi dan menguasai kaedah pengiraan yang cekap adalah penting untuk menyelesaikan banyak masalah dalam bidang statistik kebarangkalian, kriptografi, reka bentuk algoritma, dll.

Bagaimana untuk melaksanakan susun atur penyesuaian kedudukan paksi y dalam anotasi web? Bagaimana untuk melaksanakan susun atur penyesuaian kedudukan paksi y dalam anotasi web? Apr 04, 2025 pm 11:30 PM

Algoritma Adaptif Kedudukan Y-Axis untuk Fungsi Anotasi Web Artikel ini akan meneroka cara melaksanakan fungsi anotasi yang serupa dengan dokumen perkataan, terutama bagaimana menangani selang antara anotasi ...

Apakah platform mata wang digital yang selamat dan boleh dipercayai? Apakah platform mata wang digital yang selamat dan boleh dipercayai? Mar 17, 2025 pm 05:42 PM

Platform mata wang digital yang selamat dan boleh dipercayai: 1. Okx, 2. Binance, 3. Gate.io, 4. Kraken, 5. Huobi, 6 Coinbase, 7. Kucoin, 8 crypto.com, 9. Bitfinex, 10. Keselamatan, kecairan, yuran pengendalian, pemilihan mata wang, antara muka pengguna dan sokongan pelanggan harus dipertimbangkan ketika memilih platform.

See all articles