Insertion sort (Joylab saralash) ham tartibsiz array elementlarini saralash uchun mo’ljallangan. Uning ishlash prinsipi (g’oyasi) huddi qo’ldagi kartani saralashga o’xshab ketadi. Ya’ni tartibsiz turgan kartalar ichidan birini olasiz va uni o’zi turishi kerak bo’lgan joyga joylashtirib qo’yasiz. (Yuqoridagi rasmga qarang) Insertion sort ham shunday ishlaydi. Algoritm oldin array boshidagi ikkita elementni saralab oladida qolgan elementlarni shularga qarab o’z o’rniga joylashtirib ketaveradi. (Ulardan oldiga, ularning orasiga yoki ulardan keyinga). Har bir element huddi shu tartibda o’z o’rnini topib boraveradi
26.1 Berilganlarning dinamik strukturasi Bеrilganlar ustida ishlashda ularning miqdori qancha bo’lishi va ularga xotiradan qancha joy ajratish kеrakligi oldindan noma'lum bo’lishi mumkin. Programma ishlash paytida bеrilganlar uchun zarurat bo’yicha xotiradan joy ajratish va ularni ko’rsatkichlar bilan bog’lash orqali yagona struktura hosil qilish jarayoni xotiraning dinamik taqsimoti dеyiladi. Bu usulda hosil bo’lgan bеrilganlar majmuasiga bеril-ganlarning dinamik strukturasi dеyiladi, chunki ularning o’lchami programma bajarilishida o’zgarib turadi. Programmalashda dinamik strukturalardan chiziqli ro’yxatlar (zanjirlar), styoklar, navbatlar va binar daraxtlar nisbatan ko’p ishlatiladi. Ular bir -biridan elеmеntlar o’rtasidagi bog’lanishlari va ular ustida bajariladigan amallari bilan farqlanadi. Programma ishlashida strukturaga yangi elеmеntlar qo’shilishi yoki o’chirilishi mumkin
Har qanday bеrilganlarning dinamik strukturasi maydonlardan tashkil topadi va ularning ayrimlari qo’shni elеmеntlar bilan bog’lanish uchun xizmat qiladi.
28.1 Li algoritmi Li algoritmi labirintlarni yo'naltirish muammolari uchun mumkin bo'lgan echimlardan biridir. U har doim optimal yechimni beradi, agar mavjud bo'lsa, lekin sekin ishlaydi va zich joylashtirish uchun katta xotira talab qiladi.
Bu qanday ishlashini tushunish
Algoritm qadamlarni saqlash uchun navbatlardan foydalanadigan kenglikka asoslangan algoritmdir. Odatda quyidagi bosqichlardan foydalanadi:
Boshlanish nuqtasini tanlang va uni navbatga qo'shing.
To'g'ri qo'shni hujayralarni navbatga qo'shing.
Navbatdan siz turgan joyni olib tashlang va keyingi elementga o'ting.
Navbat bo'sh qolguncha 2 va 3-bosqichlarni takrorlang.