Yilgan masalani yechish uchun turli XIL murakkablikdagi algoritmlardan eng samarali algoritmnu aniqlash



Yüklə 166,49 Kb.
səhifə2/6
tarix13.09.2023
ölçüsü166,49 Kb.
#143008
1   2   3   4   5   6
Denov TPI 02.06.2023 Aviatsiya — копия

    Bu səhifədəki naviqasiya:
  • 1-rasm.
Doimiy murakkablik - O(C): Agar algoritmning bajarilishini yakunlash uchun zarur boʻlgan qadamlar kiritilgan ma’lumotlar sonidan qat’iy nazar, doimiy boʻlib qolsa, algoritmning murakkabligi doimiy deyiladi. Doimiy murakkablik O(c) bilan belgilanadi, bunda c har qanday doimiy son boʻlishi mumkin.
Pythonda roʻyxatdagi birinchi elementning kvadratini topib, keyin uni ekranda chop etadigan oddiy algoritm yozamiz:
def doimiy(element):
natija = element[0] * element[0]
print(natija)
doimiy([4, 5, 6, 8])
Yuqoridagi skriptda, kirish oʻlchamidan yoki kirish roʻyxatidagi elementlar sonidan qat’iy nazar, algoritm faqat 2 qadamni bajaradi:

  1. Birinchi elementning kvadratini topish

  2. Natijani ekranda chop etish.

Shunday qilib, murakkablik doimiy boʻlib qoladi.
Agar X oʻqida kiritilgan elementlarning oʻlchamlari va Y oʻqidagi qadamlar soni oʻzgaruvchan chiziqli chizma chizilsa natija toʻgʻri chiziqdan iborat boʻladi.
Buni quyidagi dastur yordamida tasavvur qilishga harakat qilamiz.
Kirishlar sonidan qat’iy nazar, bajarilgan qadamlar soni bir xil boʻlib qoladi:

import matplotlib.pyplot as plt
import numpy as np
qadamlar = []
def doimiy(n):
return 1
for i in range(1, 100):
qadamlar.append(doimiy(i))
plt.plot(qadamlar)
plt.xlabel('x-kiritilgan elementlarning o\'lchamlari')
plt.ylabel('y-Qadamlar')
plt.title('DOIMIY O(c) murakkablik ')
plt.show()




1-rasm. Doimiy(oʻzgarmas) murakkablikda algoritmning kiritilgan elementlarning oʻlchamlari bilan qadamlarning bogʻlanishi
Chiziqli murakkablik - O(n)
Algoritmning bajarilishini yakunlash uchun zarur boʻlgan bosqichlar kirishlar soniga qarab chiziqli ravishda ortib yoki kamaysa, algoritmning murakkabligi chiziqli deyiladi. Chiziqli murakkablik O(n) bilan belgilanadi. Ushbu misolda roʻyxatdagi barcha elementlarni konsolga koʻrsatadigan oddiy dastur yozamiz:
def chiziqli(elementlar):
for element in elementlar:
print(element)
chiziqli([4, 5, 6, 8])
chiziqli() funksiyasining murakkabligi yuqoridagi misolda chiziqli, chunki forning takrorlanish soni kirish elementlari roʻyxatining oʻlchamiga teng boʻladi. Misol uchun, agar roʻyxatda 4 ta element boʻlsa, for 4-marta bajariladi.
Quyida x oʻqidagi kirishlar soni va y oʻqidagi qadamlar soni bilan chiziqli murakkablik algoritmi uchun koʻrinishni tuzamiz:


Yüklə 166,49 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin