Pengenalan Algoritma Penyisipan

Pengenalan Algoritma Penyisipan

Insertion Sort adalah teknik yang berfungsi dengan menggunakan sublist yang disusun dan terus menambahkan nilai dari senarai yang tidak disusun sehingga keseluruhan senarai disusun.





Algoritma bermula dengan item senarai pertama sebagai sub senarai yang disusun. Ia kemudian membandingkan nombor seterusnya dengan yang pertama. Sekiranya lebih besar, maka dimasukkan dalam indeks pertama. Jika tidak, ia tinggal dalam indeksnya.





Nilai ketiga kemudian dibandingkan dengan dua yang lain, dan kemudian dimasukkan ke dalam indeks yang betul. Proses ini berterusan sehingga keseluruhan senarai disusun.





Pandangan Lebih dekat pada Isian Sisipan

Huraian di atas mungkin tidak masuk akal bagi anda. Contohnya dapat membantu anda memahami dengan lebih baik.

Katakan anda mempunyai senarai: [39, 6, 2, 51, 30, 42, 7].



Algoritma mengenal pasti 39 sebagai nilai pertama dari senarai yang disusun. Penilaian kemudian beralih ke kedudukan kedua.

Berkaitan: Pengaturcaraan Dinamik: Contoh, Masalah Umum, dan Penyelesaian





6 kemudian dibandingkan dengan 39. Oleh kerana 6 kurang dari 39, 6 dimasukkan di kedudukan pertama dan 39 di tempat kedua. Urutan senarai baru adalah selepas hantaran pertama sekarang:

[6, 39, 2, 51, 30, 42, 7]





Penilaian kini beralih ke kedudukan ketiga. 2 dibandingkan dengan dua nombor terakhir dan kemudian dimasukkan ke kedudukan yang betul. Urutan senarai baru adalah selepas hantaran kedua sekarang:

[2, 6, 39, 51, 30, 42, 7]

Untuk pas ketiga, urutan senarai adalah:

[2, 6, 39, 51, 30, 42, 7]

Proses berulang sehingga keseluruhan senarai disusun.

Lihat rajah di bawah yang merangkum operasi ini:

Analisis algoritma

Kerumitan masa Penyisipan Sisip adalah O (n2), seperti semacam gelembung . Jumlah perbandingan dalam senario terburuk adalah jumlah semua bilangan bulat dari 1 hingga (n-1), memberikan jumlah kuadratik.

Pelaksanaan Kod

Kod Python dan Java di bawah menunjukkan bagaimana anda dapat melaksanakan kaedah Penyisipan Penyisipan.

Python:

def insertionSort(mylist):
for step in range(1, len(mylist)):
current_element = mylist[step]
position = step
while position > 0 and mylist[position - 1] > current_element:
mylist[position] = mylist[position - 1]
position = position - 1
mylist[position] = current_element

Jawa:

void insertionSort(int[] myarray) {
int n = myarray.length;
for (int x = 1; x int key = myarray[x];
int y = x-1;
while ( (y > -1) && ( myarray [y] > key ) ) {
myarray [y+1] = myarray [y];
y--;
}
myarray[y+1] = key;
}
}

Pengekodan Lebih Baik Dengan Pseudocode

Contoh kod di atas diberikan tanpa kod pseudocode yang boleh anda rujuk untuk menulis algoritma ini dalam bahasa lain. Sebilangan besar pengaturcara (termasuk penulis) suka berlari ke papan kekunci mereka setelah diberitahu 'bisikan' tentang bagaimana program berfungsi.

Pendekatan ini sayangnya terdedah kepada kesalahan kerana logik program menjadi lebih rumit. Bagaimana anda ingin meningkatkan permainan pengaturcaraan anda dengan belajar bagaimana menggunakan pseudocode?

Berkongsi Berkongsi Tweet E-mel Apa itu Pseudocode dan Bagaimana Ia Membuat Anda Pembangun Lebih Baik?

Berjuang untuk belajar pengaturcaraan? Ikuti kod dengan mempelajari pseudocode. Tetapi apa itu pseudocode dan bolehkah ia benar-benar membantu?

Baca Seterusnya
Topik-topik yang berkaitan
  • Pengaturcaraan
  • Jawa
  • Python
  • Tutorial Pengekodan
Mengenai Pengarang Jerome Davidson(22 Artikel Diterbitkan)

Jerome adalah Penulis Kakitangan di MakeUseOf. Dia merangkumi artikel mengenai Pengaturcaraan dan Linux. Dia juga peminat crypto dan selalu mengawasi industri crypto.

butang rumah iphone 8 plus tidak berfungsi
Lagi Dari Jerome Davidson

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan