Video: Ո՞րն է երկուական որոնման մեծ O-ն:
2024 Հեղինակ: Lynn Donovan | [email protected]. Վերջին փոփոխված: 2023-12-15 23:48
Երկուական որոնում ավելի արագ է, քան գծային որոնում բացառությամբ փոքր զանգվածների.
Երկուական որոնում ալգորիթմ.
-ի պատկերացում երկուական որոնում ալգորիթմ, որտեղ 7-ը թիրախային արժեքն է | |
---|---|
Դասարան | Որոնում ալգորիթմ |
Լավագույն դեպքի կատարումը | Օ (1) |
Միջին կատարողականություն | Օ (log n) |
Տիեզերական ամենավատ բարդությունը | Օ (1) |
Այսպիսով, ո՞րն է երկուական որոնման բարդությունը:
Երկուական որոնում աշխատում է ամենավատ լոգարիթմական ժամանակում՝ կատարելով O(log n) համեմատություններ, որտեղ n-ը զանգվածի տարրերի թիվն է, O-ը Big O նշումն է, իսկ log-ը լոգարիթմն է: Երկուական որոնում վերցնում է հաստատուն (O(1)) տարածություն, ինչը նշանակում է, որ ալգորիթմի կողմից վերցված տարածությունը նույնն է զանգվածի ցանկացած թվով տարրերի համար:
Բացի այդ, երկուական որոնումն ամենաարագն է: Այո եւ ոչ. Այո, կան որոնումներ որոնք միջինում ավելի արագ են, քան կիսաբեկումը որոնում . Բայց ես հավատում եմ, որ դրանք դեռ O(lg N) են, պարզապես ավելի ցածր հաստատունով: Դուք ցանկանում եք նվազագույնի հասցնել ձեր տարրը գտնելու համար պահանջվող ժամանակը:
Նմանապես մեկը կարող է հարցնել, թե ինչպես եք գրում երկուական որոնում:
Երկուական որոնում : Որոնում տեսակավորված զանգված՝ բազմիցս բաժանելով որոնում ընդմիջումը կիսով չափ: Սկսեք ամբողջ զանգվածը ընդգրկող ընդմիջումով: Եթե արժեքը որոնում բանալին ավելի փոքր է, քան միջակայքի միջնամասում գտնվող կետը, նեղացրեք միջակայքը մինչև ստորին կեսը: Հակառակ դեպքում նեղացրեք այն վերին կեսին:
Ո՞րն է երկուական որոնման ժամանակային բարդությունը:
Այսպիսով, պետք է լինի որոշակի վարքագիծ, որը ցույց է տալիս ալգորիթմը, որպեսզի տրվի a բարդություն տեղեկամատյան n. Եկեք տեսնենք, թե ինչպես է այն աշխատում: Քանի որ երկուական որոնում ունի O(1) լավագույն դեպքի արդյունավետություն և O(log n) վատագույն դեպքում (միջին դեպք), մենք կանդրադառնանք ամենավատ դեպքի օրինակին: Դիտարկենք 16 տարրերից բաղկացած տեսակավորված զանգված:
Խորհուրդ ենք տալիս:
Արդյո՞ք երկուական ծառի կույտ է:
Երկուական կույտը ամբողջական երկուական ծառ է, որը բավարարում է կույտ պատվիրելու հատկությունը: max-heap հատկությունը. յուրաքանչյուր հանգույցի արժեքը փոքր է կամ հավասար է իր մայրի արժեքին, իսկ արմատում առավելագույն արժեք ունեցող տարրը
Որոնք են որոնման համակարգերը, որոնք փնտրում են այլ որոնման համակարգեր:
Մեր որոնողական արկածը սկսելու համար եկեք դիտարկենք մի քանի ընդհանուր որոնման համակարգեր, որոնք դուրս են լավագույն երեքից: DuckDuckGo. Մտահոգվա՞ծ եք առցանց գաղտնիության համար: Որոնել գաղտնագրել: Փնտրու՞մ եք DuckDuckGo-ի այլընտրանք: Էկոզիա. Ուզու՞մ եք ծառեր տնկել, մինչ դուք փնտրում եք: Շան կույտ. Բլեկկո. ՎոլֆրամԱլֆա. Գիգաբլաստ. Facebook որոնում
Ինչպե՞ս գտնել երկուական որոնման կեսը:
Հաշվի առնելով տեսակավորված զանգվածը՝ մենք գտնում ենք ամենամիջին տարրը և ստեղնով ստուգում տարրը: Եթե ամենամիջին տարրը հավասար է բանալիին, մենք գտել ենք բանալին: Եթե ամենամիջին տարրը մեծ է բանալինից, մենք որոնում ենք ամենամիջին տարրի ձախ կեսում, հակառակ դեպքում՝ աջ կեսում:
Ինչպե՞ս եք իրականացնում երկուական որոնման ծառը Java-ում:
Երկուական որոնման ծառի (BST) ներդրում Java-ում Հանգույցի ձախ ենթածառը պարունակում է միայն հանգույցներ, որոնց բանալիները պակաս են, քան հանգույցի բանալին: Հանգույցի աջ ենթածառը պարունակում է միայն հանգույցներ, որոնց բանալիներն ավելի մեծ են, քան հանգույցի բանալին: Ձախ և աջ ենթածառը պետք է լինի նաև երկուական որոնման ծառ: Կրկնվող հանգույցներ չպետք է լինեն
Որո՞նք են երկուական որոնման ծառի ամենավատ դեպքերը և դեպքերի միջին բարդությունը:
Երկուական որոնման ծառ Ալգորիթմ Միջին Ամենավատ դեպքը Տարածություն O(n) O(n) Որոնել O(log n) O(n) Տեղադրել O(log n) O(n) Ջնջել O(log n) O(n)