Isihan kuadratik

Isih - sedang menyusun semula elemen tatasusunan (senarai) dalam susunan tertentu.

Kaedah buih (isih gelembung), atau isih mengikut pertukaran mudah).
Klasik abadi genre. Prinsip tindakan adalah mudah: kita mengelilingi tatasusunan dari awal hingga akhir, secara serentak menukar elemen jiran yang tidak diisih. Hasil daripada hantaran pertama ke tempat terakhir, "muncul" unsur maksimum. Sekarang kita sekali lagi memintas bahagian tatasusunan yang tidak diisih (dari elemen pertama hingga yang terakhir) dan menukar jiran yang tidak diisih di sepanjang jalan. Elemen kedua terbesar akan berada di tempat kedua. Meneruskan dengan semangat yang sama, kami akan memintas bahagian tatasusunan yang tidak diisih yang semakin berkurangan, menolak maksimum yang ditemui ke penghujung.
 
Sumber

Pelaksanaan algoritma algoritma ini
GULUNG UNTUK J=1 HINGGA N-1 LANGKAH 1 F=0 LOOP UNTUK I=1 HINGGA N-J-1 LANGKAH 1 JIKA A[I] > A[I+1] KEMUDIAN TUKAR A[I],A[I+1] F=1 SETERUSNYA I JIKA F=0 MAKA KELUAR GULUNG // jika tiada pertukaran semasa pas,   // itu bermaksud semua elemen   // disusun mengikut urutan SETERUSNYA J Kerumitan algoritma ini: \(\displaystyle O(n^{2})\).


Maklumat berguna tambahan: Artikel Wikipedia.

 

Sisipkan isihan

Isih sisipan (Isih sisipan) —  ;algoritma pengisihan di mana unsur-unsur jujukan input dicari satu demi satu, dan setiap elemen masuk baharu diletakkan di tempat yang sesuai antara elemen yang diisih sebelum ini.


Sisipkan isihan – ia adalah algoritma yang sangat mudah tetapi tidak cekap yang namun mempunyai beberapa kelebihan khusus yang menjadikannya relevan walaupun selepas banyak algoritma lain yang umumnya lebih cekap telah dibangunkan.

Dengan isihan sisipan, anda tidak perlu mempunyai keseluruhan tatasusunan di hadapan sebelum mengisih. Algoritma boleh menerima satu elemen pada satu masa semasa pengisihan. Ini sangat berguna jika kita perlu menambah lebih banyak elemen semasa pengisihan. Algoritma akan memasukkan elemen baharu di tempat yang betul tanpa "melaksanakan semula" mengisih keseluruhan tatasusunan.

Isihan sisipan boleh digunakan dalam amalan kerana kecekapannya pada set data kecil (~10 elemen).

Masalahnya ialah ini: terdapat sebahagian daripada tatasusunan yang telah diisih, dan anda ingin memasukkan unsur-unsur yang tinggal dalam tatasusunan ke dalam bahagian yang diisih, sambil mengekalkan susunan. Untuk melakukan ini, pada setiap langkah algoritma, kami memilih salah satu elemen data input dan memasukkannya pada kedudukan yang dikehendaki dalam bahagian tatasusunan yang telah diisih, sehingga keseluruhan set data input diisih. Kaedah memilih elemen seterusnya daripada tatasusunan input adalah sewenang-wenangnya, tetapi biasanya (dan untuk mendapatkan algoritma pengisihan yang stabil), elemen dimasukkan dalam susunan penampilannya dalam tatasusunan input.

Pelaksanaan algoritma algoritma ini
// Elemen nol dianggap sebagai urutan yang telah diisih. // Oleh itu, gelung bermula dari 1 LOOP UNTUK I=1 HINGGA N-1 LANGKAH 1 X=A[I] J=I APABILA J>0 DAN A[J-1]>X //mencari tempat untuk memasukkan TUKAR A[J],A[J-1] J=J-1 TAMATLAH A[J]=X SETERUSNYA I Kerumitan pengiraan: \(\displaystyle O(n^{2})\).