Tanlash usuli bilan saralash algoritmi.
Tanlash saralashi bu juda oddiy saralash texnikasi, chunki texnika faqat har bir pasda eng kichik elementni topishni va uni to'g'ri holatga qo'yishni o'z ichiga oladi.
Saralash tartibi saralanadigan ro'yxat kichik hajmga ega bo'lganda samarali ishlaydi, ammo uning ishlashi yomon ta'sir qiladi, chunki saralanadigan ro'yxat hajmi kattalashib boradi.
Tanlash orqali saralash (A, N)
1-qadam: K = 1 dan N-1 gacha bo'lgan 2 va 3-bosqichlarni takrorlash
2-qadam: Qo'ng'iroq qilish tartibi eng kichik (A, K, N, POS)
3-qadam: A [K] ni A [POS] bilan almashtirish
4-qadam: EXIT
Muntazam eng kichik (A, K, N, POS)
1-qadam: [initiaizatsiya] set smallestElem = A [K]
2-qadam: [boshlash] POS = K ni o'rnating
3-qadam: J = K + 1 dan N -1 gacha, takrorlash
if smallestElem> A [J] bo'lsa
smallestElem = A [J] o'rnating
POS = J ni o'rnating
[agar tugasa]
4-qadam: POS-ni qaytarish
Tanlash orqali saralash algoritmi
Tanlash uchun psevdokod saralash
Jarayonni tanlash_sort (qator, N)
massiv - saralanadigan narsalar qatori
N - massivning kattaligi
boshlash
I = 1 dan N-1 gacha
boshlash
min = i ni o'rnating
j = i + 1 dan N gacha
boshlash
agar array [j] min = j;
tugatish agar
uchun tugatish
// minimal elementni joriy element bilan almashtirish
agar minIndex! = Men keyin
qator [min [] va [i] qatorni almashtirish
tugatish agar
uchun tugatish
tugatish tartibi
Topshiriq
AMALIY MASHG’ULOT-4
Mavzu: Rekursiya va ularni dasturlashda ishlatish. Rekursiv va iterative algoritmlarni ishlatishga misol.
Ishdan maqsad: Ushbu laboratoriya ishining maqsadi talabalar rekursiv funksiyalar mavjudligini va ularning samaradorliklarini baholashni o‘rganishlari kerak. Shu asosda saralash usullarini qiyosiy tahlil qilishlari, C++ dasturlash tilida fayllar bilan ishlashni va ularga oid dasturlar tuzishni o‘zlashtirishlari kerak.
Qo‘yilgan masala: Talabalar topshiriq variantiga mos saralash usuli yordamida masalani yechish dasturini yaratish ko‘nikmasiga ega bo‘lishlari kerak.
Ish tartibi:
Tajriba ishi nazariy ma’lumotlarini o‘rganish;
Berilgan topshiriqning algoritmini ishlab chiqish;
C++ dasturlash muhitida dasturni yaratish;
Natijalarni tekshirish;
Hisobotni tayyorlash va topshirish.
Funksiya o'ziga o'zi to'g'ridan-to'g'ri yoki qandaydir vosita orqali murojaat qilish jarayoniga rekursiya deyiladi va bunday funksiya rekursiv funksiya deb ataladi. Hikoyadagi misolga qaytadigan bo'lsak, yerda summa() nomli funksiya natijasini hisoblash uchun unga bir necha marta qayta murojaat qilishiga to'g'ri keldi. Aynan shu narsa rekursiyaning mohiyatini tashkil qiladi. Lekin, shunchaki ta'rif yordamida to'g'ri va xatosiz ishlovchi rekursiv funksiya tuzish qiyin, buning uchun rekursiv funksiyaning asosiy shartlarini yaxshi bilish kerak.
Do'stlaringiz bilan baham: |