1.1.Saralash haqida tushuncha va algoritmlari
O ‘sish yoki kamayish tartibida to ‘plam elementlarini tartiblangan saralash deyiladi.
Tartiblangan elementlar bilan ishlash tartibsiz joylashgan elementlardan ko‘ra qulayroq: kerakli elem entlam i yengil topish, olib tashlash, yangilarini qo'yish mumkin. Saralash algoritmlarini quyidagi guruhlarga ajratish mumkin Odatda saralanayotgan to ‘plam elementlari yozuvlar deyiladi va k1, k2,...,kn ko ‘rinishida yoziladi. Saralashlar turlicha algoritmlar bajarilsa-da, yagona natijalarga olib keladi. Ammo saralashlar jarayonida sarflanadigan vaqt miqdori ularning o‘zaro taqqoslashdagi me’zonlardan biri hisoblanadi. Dastur bajarilish vaqti amallar bajarilish soniga va protsessor tezligiga proporsional.
Saralash va izlash amalda juda ko’p qo’llaniladi, fayldagi so’zlarnini izlashdan tortib, internetda ma’lumot izlashgacha.
Saralash
a[0], a[1], a[2] .. a[n-1] massiv elementlari berilgan.
Ularni shunday joylashtirish kerakki, ular kamaymaslik tartibida bo’lib qolsin.
Masalan:
5 8 9 1 5 2 3 9
Saralangandan so’ng
1 2 3 5 5 8 9 9
Saralash algoritmlari
Saralash algoritmlari ikki tipga bo’linadi.
O( ) vaqtda saralovchi algortimlar.
O(n•log(n)) vaqtda saralovchi algoritmlar.
Algoritmlarda log(n) bu .
n= bo’lganda taqqoslang:
O( ) = , O(n•log(n)) = 1660964.
1.2.Piramidali saralash algoritmi
Ushbu saralashda har qanday dasturchi bilishi mumkin bo'lgan klassik algoritm bo'lgan piramida navi keltirilgan. Ushbu qo'llanma o'quvchilarga o'zlarining topshiriqlarini bajarishda yordam berishi bilan ajralib turadi. Ushbu mavzu bo'yicha eng yaxshi namunalar yo'q, shuning uchun uni o'zingizning vazifangiz bilan shug'ullanish uchun ishlating, ammo ushbu namunani o'zingiznikidek taqdim qilmang. Ko'pgina talabalarda IT-vazifalari bilan bog'liq muammolar bo'lganligi sababli, AssignmentShark.com o'z yordamini taklif qiladi. Bizning saytda siz tanlagan mutaxassislar ro'yxatini topishingiz mumkin.
Bizning mutaxassislarimiz tezkor ishlashadi, shuning uchun siz belgilangan muddatdan oldin ham bajarilgan topshiriqni olasiz. Shu bilan birga, bizda o'rtacha narxlar mavjud, shuning uchun har qanday talaba bizning xizmatimizdan foydalanishi mumkin. Biz har qanday turdagi topshiriq bo'yicha yordam beramiz. Bizning saytimizga faqat sizning talablaringiz bilan buyurtma berishingiz va muddatni belgilashingiz kerak. Piramidani saralash mavzusidan xabardor bo'lmaganlar uchun quyidagi qo'llanmani taqdim etamiz.
Piramidal saralash algoritmi
Ushbu hozir biz piramidal algoritm yordamida bir o'lchovli massivni saralab, algoritmning ishlash ko'rsatkichlarini aniqlaymiz: taqqoslash soni va elementlarning almashinish soni.
Piramida - bu daraxt, unda har bir tugunning ko'pi bilan ikkita avlodi bor va tugun har doim o'z avlodlariga kattaroq yoki teng bo'ladi (shuning uchun eng katta element har doim piramidaning tepasida).
Agar asl massivda n ta element bo'lsa, u holda oxirgi (n / 2) elementlar piramidaning asosiga aylanadi.
Piramidani massivga joylashtirish qulay. Shunday qilib, a [i] massivining har bir elementi a [2 * i + 1] va a [2 * i + 2] elementlaridan katta yoki teng bo'lishi kerak, shuning uchun piramidaning har bir tuguni uning avlodlaridan kattaroq bo'ladi.
Saralash paytida biz maksimal elementni massiv oxiriga o'tkazamiz, so'ngra uni keyingi saralash jarayonidan chiqaramiz. Maksimal element har doim piramidaning tepasida joylashganligi uchun biz a [0] va a [n-1] (oxirgi element) elementlarini almashtirishimiz kerak. Keyinchalik, biz qatorni faqat (n-2) -chi elementgacha ko'rib chiqamiz.
Loyiha tuzilishi, kodi va dastur namunasini bajarish piramidal tartiblash:
Programs.cs file:
PyramidSorting.cs file:
Project architecture:
Sample execution:
A) Piramidani saralash algoritmi quyidagicha tavsiflanadi: quyidagi bosqichlarni o'z ichiga oladi:
1. n ma'lumotlarga saralashda, avval n birlikka ega bo'lgan massivni aniqlang, so'ng m butun sonini toping, m - integralning raqamli kuchi 2, m / 2 2.m birlikka ega b massivni aniqlang, b massiv piramidal ustunli oyoq hosil qiladi; Yana m birligi bo'lgan c qatorini aniqlang, c massivi piramidal minora tanasini hosil qiladi;
3. to c qatori ishga tushirishni amalga oshiradi, b qatorga qo'yish uchun n ketma-ketlik ma'lumotlari kerak bo'ladi, va b qatorda mn minimal qiymat ma'lumotlarini qo'yish kerak bo'lsa, bu minimal qiymat ma'lumotlari n ma'lumotlardagi minimal qiymat ma'lumotlari, m shakli / 2 qo'shni ma'lumotlarga; Keyin u birma-bir taqqoslandi, nisbatan katta sonli indeks s massivning m / 2 ~ m-1 birligiga qo'yildi, bu jarayon minora korpusining birinchi qavatini piramida qiladi;
4.m-1 dan, b [c [m-1]] va b [c [m-2]], b [c [m-3]] va b [c [m-4] ni birma-bir taqqoslang ] ..., b [c [m / 2 + 1]] va b [c [m / 2]], va nisbatan katta sonli indeks c [m / 2-1], c [m / 2-2] ..., c [m / 4] da, qolganlari 2, 3 ... va hattoki maksimal qatlamli minora tanasi piramida shakllari haqida xulosa chiqarishi mumkin, shunday qilib butun minora tanasini barpo etish, oxirgi aylanadigan tejamkorlik butun b massivning maksimal qiymat ma'lumotlari c [1] ga joylashtirilgan;
5. b qatoridagi maksimal qiymat ma'lumotlari, 4. qadam uchun olingan minimal qiymat bilan tuzilgan;
6. 4. qadamni 5. qadam bilan takrorlang va shu bilan doimiy ravishda b qatoridagi maksimal qiymatni aniqlang va u birma-bir a [0], a [1], a [2] ..., to'liq ketma-ketlikni hosil qiling .
B)A-da'voga muvofiq piramidalarni saralash algoritmining bir turi, quyidagilar bilan tavsiflanadi: m butun sonini izlash uslubidagi 1-qadam tasvirlangan: o'zgaruvchiga topshiriqlarga 1 bo'ling, so'ngra ushbu o'zgaruvchining qiymati va n taqqoslanadi , agar u n dan kichik bo'lsa, u holda 2 ga ko'paytiring, yana uning qiymati va n ... ni taqqoslang, agar bu ma'lumotlar n dan katta yoki teng bo'lmaguncha, endi bu o'zgaruvchining qiymati m ga teng.
C). A-da'voga muvofiq piramida tartiblash algoritmining bir turi quyidagicha ifodalanadi: ta'riflangan qadam 3. qo'shni ma'lumotlarda toq raqam sifatida belgilangan ma'lumotlar va unga yaqin ma'lumotlar qo'shni ma'lumotlar bo'lmasligi, qo'shni ma'lumotlar bo'lmasligi kerak. undan keyingi ma'lumotlar bilan.
Do'stlaringiz bilan baham: |