Shell saralash algortmi
Mavzu : Shell saralash al gortmi Reja : I.Kirish II.Asosiy qism 1.Shell saralash algortmi. 2. Algoritmning tahlili. 3. Tez saralash algoritmining tahlili. III Xulosa IV Foydalanilgan adabiyotlar
KIRISH Saralash tushunchasi Saralash - tartiblash (Sorting algorithms) deb, berilgan obyektlar ketma-ketligini malum mantiqiy tartibda qayta joylashtirish jarayoniga aytiladi. Saralash bir nechta ko'rsatkichlarga bog'liq bo'lishi mumkin. Misol uvhun maktab jurnalida o'quvchilar familiyasi alifbo tartibiga ko'ra saralangan bo'ladi. Masalan bizga sonlar qatori berilgan: 8,23,0,-50,100 bu qatorni kichigidan kattasiga qarab yoki kattasidan kichigiga qarab saralashishimiz mumkin. Bu saralashni amalga oshirish jarayoni Saralash algoritmi deyiladi Saralash algoritmlari ko'p va xilma-xil. Saralash algoritmlari ikki tipga bo'linadi. - O() vatda saralovchi algoritmlar. Yani kvadratik amallar talab qiladigan algoritmlar - O(n*log(N)) vaqtda saralovchi algoritmlar. Logarifmik amallar soni talab qiladigan algoritmlar Saralash algoritmi va turlari - Bubble sort (Pufakchali saralash) - Selection sort (Tanlab saralash) - Insertion sort (Joylashtirib saralash) - Quick sort (Tezkor saralash) - Merge sort (Qo'shib saralash) Bubble sort Bu eng sodda, ketma-ketlikdagi har bir sonni boshqa sonlar bilan solishtirishga asoslangan algoritm hisoblanadi. Unda yonma-yon turgan elementlardan chapdagisi o‘ngdagidan kattaligi aniqlansa, bu ikkala son o rni almashtiriladi. Bu ʻ jarayon almashtirish kerak bo lmay qolguncha davom etadi, ya ni barcha ʻ ʼ elementlar o‘sish tartibida bo‘lib qolguncha. Algoritmi va dasturi public class BubbleSort { public static void main(String[] args) { int[] massiv = { 4, 2, 9, 6, 23, 12, 34, 0, 1 };
int n = massiv.length; int k; for (int m = n; m >= 0; m--) { for (int i = 0; i < n - 1; i++) { k = i + 1; if (massiv[i] > massiv[k]) { int temp; temp = massiv[i]; massiv[i] = massiv[k]; massiv[k] = temp; } } for (int i = 0; i < massiv.length; i++) { System.out.print(massiv[i] + ", "); } System.out.println(„\n“); } } } Chiqariluvchi natijamiz esa: 2, 4, 6, 9, 12, 23, 0, 1, 34, // 1-qadam. 2, 4, 6, 9, 12, 0, 1, 23, 34, //2-qadam. 2, 4, 6, 9, 0, 1, 12, 23, 34,//3-qadam. 2, 4, 6, 0, 1, 9, 12, 23, 34,//4-qadam. 2, 4, 0, 1, 6, 9, 12, 23, 34,//5-qadam.
2, 0, 1, 4, 6, 9, 12, 23, 34,//6-qadam. 0, 1, 2, 4, 6, 9, 12, 23, 34, //7-qadam. 0, 1, 2, 4, 6, 9, 12, 23, 34, //8-qadam. 0, 1, 2, 4, 6, 9, 12, 23, 34,//9-qadam. 0, 1, 2, 4, 6, 9, 12, 23, 34, // saralangan holdagi massiv. Selection sort Tanlab saralash bu — oddiy tartiblash algoritmidir. Ushbu tartiblash algoritmi o z ʻ joyida taqqoslashga asoslangan algoritm bo lib, unda ro yxat ikki qismga ʻ ʻ bo linadi, tartiblangan qism chap tomonda va tartiblanmagan qism o ng tomonda. ʻ ʻ Dastlab, tartiblangan qism bo sh, tartiblanmagan qismi esa butun ro yxatdir. ʻ ʻ Eng kichik element tartiblanmagan massivdan tanlanadi va eng chap element bilan almashtiriladi va bu element tartiblangan massivning bir qismiga aylanadi. Bu jarayon tartiblanmagan massiv chegarasini bitta element bilan o ngga siljitishda ʻ davom etadi. Ushbu algoritm katta ma lumotlar to plamlari uchun mos emas, chunki uning ʼ ʻ o rtacha va eng yomon holatlari murakkabligi n (n), bu yerda n ʻ — elementlar soni. Ishlash printsipi. Misol tariqasida quyidagi massivni ko rib chiqamiz: arr[] = {64, 25, 12, 22, 11} ʻ Birinchi o tish: ʻ Saralangan massivdagi birinchi o rin uchun butun massiv 0 dan 4 gacha bo lgan ʻ ʻ indeksdan ketma-ket o tkaziladi. Hozirgi vaqtda 64 saqlanadigan birinchi ʻ pozitsiya, butun massivni aylanib o tgandan so ng, 11 eng past qiymat ekanligi ʻ ʻ ayon bo ladi. ʻ
Shunday qilib, 64 ni 11 bilan almashtiring. Bir iteratsiyadan so ng massivdagi eng ʻ kam qiymat bo lgan 11 , tartiblangan ro yxatning birinchi pozitsiyasida paydo ʻ ʻ bo ladi. ʻ Ikkinchi o tish: ʻ 25 mavjud bo lgan ikkinchi pozitsiya uchun massivning qolgan qismini yana ʻ ketma-ketlikda aylantiring. Ketishdan so ng biz 12 massivdagi ikkinchi eng past qiymat ekanligini va u ʻ massivda ikkinchi o rinda paydo bo lishi kerakligini aniqladik, shuning uchun bu ʻ ʻ qiymatlarni almashtiring. Uchinchi o tish: ʻ Endi, uchinchi o rin uchun, 25 mavjud bo lgan joyda yana massivning qolgan ʻ ʻ qismini aylanib o ting va massivdagi uchinchi eng kam qiymatni toping. ʻ Ketish paytida 22 uchinchi eng kam qiymat bo lib chiqdi va u massivda uchinchi ʻ o rinda paydo bo lishi kerak, shuning uchun 22 ni uchinchi o rindagi element bilan ʻ ʻ ʻ almashtiring. To rtinchi o tish: ʻ ʻ Xuddi shunday, to rtinchi pozitsiya uchun massivning qolgan qismini kesib o ting ʻ ʻ va massivdagi to rtinchi eng kichik elementni toping. ʻ 25 4-eng past qiymat bo lgani uchun u to rtinchi o rinni egallaydi. ʻ ʻ ʻ Beshinchi o tish: ʻ Nihoyat, massivda mavjud bo lgan eng katta qiymat avtomatik ravishda ʻ massivning oxirgi pozitsiyasiga joylashtiriladi Olingan massiv tartiblangan massivdir. Insertion sort (Joylab saralash) ham tartibsiz massiv elementlarini saralash uchun mo ljallangan. Uning ishlash algoritmi xuddi qo ldagi kartani saralashga o xshab ʻ ʻ ʻ