Ո՞րն է for օղակի մեծ O-ն:
Ո՞րն է for օղակի մեծ O-ն:

Video: Ո՞րն է for օղակի մեծ O-ն:

Video: Ո՞րն է for օղակի մեծ O-ն:
Video: Մի վնասիր/Կարելի է արդյոք նիհարել օղակի միջոցով 07.04.2016 2024, Նոյեմբեր
Anonim

Այն մեծ Օ ա հանգույց -ի կրկնությունների թիվն է հանգույց մեջ մի շարք հայտարարությունների մեջ հանգույց . Այժմ, ըստ սահմանման, ի Մեծ Օ պետք է լինի Օ (n*2), բայց դա այդպես է Օ (n).

Նմանապես, դուք կարող եք հարցնել, թե որն է for loop-ի բարդությունը:

Քանի որ մենք ենթադրում ենք, որ հայտարարությունները O(1) են, ապա ընդհանուր ժամանակը for-ի համար հանգույց N * O(1) է, որն ընդհանուր առմամբ O(N) է: Արտաքինը հանգույց կատարում է N անգամ: Ամեն անգամ արտաքին հանգույց կատարում է, ներքին հանգույց կատարում է M անգամ: Արդյունքում, ներքին հայտարարությունները հանգույց կատարել ընդամենը N * M անգամ:

Ավելին, ինչպիսի՞ն է Big O նշումը օրինակով: Այն Մեծ O նշում սահմանում է ալգորիթմի վերին սահմանը, այն սահմանափակում է ֆունկցիան միայն վերևից: Համար օրինակ , դիտարկենք Insertion Sort-ի դեպքը: Լավագույն դեպքում պահանջվում է գծային ժամանակ, իսկ վատագույն դեպքում՝ քառակուսի ժամանակ: Մենք կարող ենք վստահորեն ասել, որ Insertion տեսակավորման ժամանակային բարդությունը Օ (n^2):

Պարզապես, ինչպե՞ս եք գտնում for loop-ի ժամանակային բարդությունը:

Օրինակ Ընտրության տեսակավորումը և Տեղադրման տեսակավորումը ունեն O(n^2) ժամանակի բարդություն . O (Մուտք) Ժամանակի բարդություն ա հանգույց համարվում է O(Logn), եթե հանգույց փոփոխականները բաժանվում / բազմապատկվում են հաստատուն մեծությամբ: Օրինակ Երկուական որոնումն ունի O (Մուտք) ժամանակի բարդություն.

Ինչպե՞ս եք հաշվարկում Big O-ն:

Դեպի հաշվարկել Մեծ Օ , կարող եք անցնել կոդի յուրաքանչյուր տողով և հաստատել, թե արդյոք դա այդպես է Օ (1), Օ (n) և այլն, ապա վերադարձրեք ձեր հաշվարկ վերջում. Օրինակ, դա կարող է լինել Օ (4 + 5n), որտեղ 4-ը ներկայացնում է չորս դեպք Օ (1) և 5n-ը ներկայացնում է հինգ դեպք Օ (n).

Խորհուրդ ենք տալիս: