Raqamli texnologiyalar vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti samarqand filiali




Download 334 Kb.
bet3/4
Sana10.01.2024
Hajmi334 Kb.
#134346
1   2   3   4
Bog'liq
2-amaliy ish topshiriq

Natija :
'Toshimova Gulshoda' ning xesh qiymati: 1809

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.
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.
Insertion sort algoritmi – bu saralash algoritmi, o'z elementini o'zini oldi ko'rsatuvchi joyga joylashtiradi. Elementlarni bir-birini tekshirib olib, kerakli joyga joylashtiradi. Algoritma tartibida birinchi elementni o'ziga joylashtiriladi, keyin ikkinchi, keyin uchinchi va hokazo.
Insertion sort algoritmi o'n kvadrat vaqt xarajatlari bilan ishlaydi, shuning uchun katta ro'yxatlarda vaqt xarajatlari katta bo'lishi mumkin.
Insertion sort algoritmi tartibida Respublikamizdagi viloyatlar maydonini o’sish tartibida joylashtirish uchun bir misol:
def insertion_sort(arr):
n = len(arr)
for i in range(1, n):
current_value = arr[i]
position = i

# Extract numerical value from the string


current_value_numeric = int(''.join(filter(str.isdigit, current_value)))

while position > 0:


# Extract numerical value from the string in the previous position
prev_value_numeric = int(''.join(filter(str.isdigit, arr[position - 1])))

if prev_value_numeric > current_value_numeric:


arr[position] = arr[position - 1]
position -= 1
else:
break

arr[position] = current_value


# Respublikamizdagi viloyatlar maydonini o’sish tartibida joylashtirish


viloyatlar = ["16400kv_km_Samarqand", "7900kv_km_Namangan", "4200kv_km_Andijon", "6800kv_km_Farg'ona", "6300kv_km_Xorazm", "20800kv_km_Surxondaryo", "100800kv_km_Navoiy", "28400kv_km_Qashqadaryo", "39400kv_km_Buxoro", "20500kv_km_Jizzax", "5100kv_km_Sirdaryo", "15300kv_km_Toshkent viloyati", "160000kv_km_Qoraqalpog'iston"]

insertion_sort(viloyatlar)


# Natijani chiqarish


print("Respublikamizdagi viloyatlar maydoni o'sish tartibida:")
for viloyat in viloyatlar:
print(viloyat)

Download 334 Kb.
1   2   3   4




Download 334 Kb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Raqamli texnologiyalar vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti samarqand filiali

Download 334 Kb.