Բովանդակություն:

Ինչպե՞ս եք իրականացնում երկուական որոնման ծառը Java-ում:
Ինչպե՞ս եք իրականացնում երկուական որոնման ծառը Java-ում:

Video: Ինչպե՞ս եք իրականացնում երկուական որոնման ծառը Java-ում:

Video: Ինչպե՞ս եք իրականացնում երկուական որոնման ծառը Java-ում:
Video: Գումարումը երկուական համակարգում | հանրահաշիվ |«Քան» ակադեմիա 2024, Ապրիլ
Anonim

Երկուական որոնման ծառի (BST) ներդրում Java-ում

  1. Հանգույցի ձախ ենթածառը պարունակում է միայն հանգույցներ, որոնց բանալիները պակաս են, քան հանգույցի բանալին:
  2. Հանգույցի աջ ենթածառը պարունակում է միայն հանգույցներ, որոնց բանալիներն ավելի մեծ են, քան հանգույցի բանալին:
  3. Ձախ և աջ ենթածառը նույնպես պետք է լինի a երկուական որոնման ծառ .
  4. Կրկնվող հանգույցներ չպետք է լինեն:

Նաև հարց է, թե ինչպես է իրականացվում երկուական որոնումը Java-ում:

Տեսնենք երկուական որոնման օրինակ java-ում, որտեղ մենք պատրաստվում ենք որոնել տարր զանգվածից՝ օգտագործելով ռեկուրսիա:

  1. դասի BinarySearchExample1{
  2. հանրային ստատիկ int biarySearch (int arr, int առաջին, int վերջին, int բանալի){
  3. եթե (վերջին>=առաջին){
  4. int mid = առաջին + (վերջին - առաջին) / 2;
  5. եթե (arr[mid] == բանալի){
  6. վերադարձ կեսին;
  7. }

Երկրորդ, որտեղ ենք մենք օգտագործում երկուական որոնման ծառը: Երկուական որոնման ծառ - Օգտագործված շատերի մեջ որոնում հավելվածներ, որտեղ տվյալները անընդհատ մուտքագրվում/հեռանում են, օրինակ՝ քարտեզը և բազմաթիվ լեզուների գրադարաններում սահմանված օբյեկտները: Երկուական Տիեզերական բաժանում - Օգտագործված գրեթե յուրաքանչյուր 3D վիդեոխաղում՝ որոշելու, թե ինչ առարկաներ պետք է ներկայացվեն:

Այսպիսով, ինչպես են ձևավորվում երկուական ծառերը:

Երկուական ծառի ստեղծում՝ օգտագործելով ռեկուրսիա

  1. Կարդացեք տվյալները x-ով:
  2. Հիշողություն հատկացրեք նոր հանգույցի համար և հասցեն պահեք ցուցիչում p.
  3. Պահպանեք x տվյալները p հանգույցում:
  4. Ռեկուրսիվ կերպով ստեղծեք p-ի ձախ ենթածառը և դարձրեք այն p-ի ձախ զավակը:
  5. Ռեկուրսիվ կերպով ստեղծեք p-ի ճիշտ ենթածառը և դարձրեք այն p-ի ճիշտ զավակը:

Ո՞րն է երկուական որոնման բարդությունը:

Երկուական որոնում աշխատում է ամենավատ լոգարիթմական ժամանակում՝ կատարելով O(log n) համեմատություններ, որտեղ n-ը զանգվածի տարրերի թիվն է, O-ը Big O նշումն է, իսկ log-ը լոգարիթմն է: Երկուական որոնում վերցնում է հաստատուն (O(1)) տարածություն, ինչը նշանակում է, որ ալգորիթմի կողմից վերցված տարածությունը նույնն է զանգվածի ցանկացած թվով տարրերի համար:

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