ዝርዝር ሁኔታ:

በጃቫ ውስጥ የሁለትዮሽ የፍለጋ ዛፍን እንዴት ተግባራዊ ያደርጋሉ?
በጃቫ ውስጥ የሁለትዮሽ የፍለጋ ዛፍን እንዴት ተግባራዊ ያደርጋሉ?

ቪዲዮ: በጃቫ ውስጥ የሁለትዮሽ የፍለጋ ዛፍን እንዴት ተግባራዊ ያደርጋሉ?

ቪዲዮ: በጃቫ ውስጥ የሁለትዮሽ የፍለጋ ዛፍን እንዴት ተግባራዊ ያደርጋሉ?
ቪዲዮ: TUDev's Tech Talk! Procedural Generation Presentation by William Power 2024, ህዳር
Anonim

በጃቫ ውስጥ የሁለትዮሽ ፍለጋ ዛፍ (BST) መተግበር

  1. የመስቀለኛ ግራው ንዑስ ዛፍ ከመስቀለኛ ቁልፍ ያነሱ ቁልፎች ያሏቸው ኖዶች ብቻ ይዟል።
  2. የአንድ መስቀለኛ መንገድ የቀኝ ንኡስ ዛፍ ከኖድ ቁልፍ የሚበልጡ ቁልፎች ያሏቸው ኖዶችን ብቻ ይይዛል።
  3. ግራ እና ቀኝ የከርሰ ምድር እያንዳንዳቸው ደግሞ ሀ መሆን አለበት ሁለትዮሽ ፍለጋ ዛፍ .
  4. የተባዙ አንጓዎች ሊኖሩ አይገባም።

እንዲሁም ጥያቄው በጃቫ ውስጥ ሁለትዮሽ ፍለጋ እንዴት ነው የሚተገበረው?

በጃቫ ውስጥ የሁለትዮሽ ፍለጋን ምሳሌ እናያለን ከአንድ ድርድር ላይ recursion በመጠቀም አንድን አካል የምንፈልግበት።

  1. ክፍል ሁለትዮሽ ፍለጋ ምሳሌ1{
  2. ይፋዊ የማይንቀሳቀስ ኢንት ሁለትዮሽ ፍለጋ(int arr፣ int first፣ int last፣ int key){
  3. ከሆነ (የመጨረሻ>=መጀመሪያ){
  4. int mid = መጀመሪያ + (የመጨረሻ - መጀመሪያ) / 2;
  5. ከሆነ (arr[mid] == ቁልፍ){
  6. መሀል መመለስ;
  7. }

በሁለተኛ ደረጃ, ሁለትዮሽ ፍለጋ ዛፍ የምንጠቀመው የት ነው? ሁለትዮሽ ፍለጋ ዛፍ - ጥቅም ላይ የዋለ በብዙ ፍለጋ እንደ ካርታ እና ብዙ የቋንቋ ቤተ-መጻሕፍት ውስጥ ያሉ ነገሮችን የሚያዘጋጁ እንደ ውሂብ ያለማቋረጥ የሚገቡ/የሚወጡ መተግበሪያዎች። ሁለትዮሽ የጠፈር ክፍልፍል - ጥቅም ላይ የዋለ ምን ዓይነት ነገሮች መሠራት እንዳለባቸው ለመወሰን በእያንዳንዱ የ3-ል ቪዲዮ ጨዋታ ማለት ይቻላል።

እንዲያው፣ ሁለትዮሽ ዛፎች እንዴት ተፈጠሩ?

ድግግሞሽ በመጠቀም ሁለትዮሽ ዛፍ መፍጠር

  1. በ x ውስጥ ውሂብ ያንብቡ።
  2. ማህደረ ትውስታን ለአዲስ መስቀለኛ መንገድ ይመድቡ እና አድራሻውን በጠቋሚ ፒ.
  3. ውሂቡን x በመስቀለኛ መንገድ p.
  4. በተደጋጋሚ የ p የግራውን ንዑስ ዛፍ ይፍጠሩ እና የገጽ ግራ ልጅ ያድርጉት።
  5. ትክክለኛውን የፒ ንኡስ ዛፍ ደጋግመው ይፍጠሩ እና ትክክለኛውን የፒ ልጅ ያድርጉት።

የሁለትዮሽ ፍለጋ ውስብስብነት ምንድነው?

ሁለትዮሽ ፍለጋ በጣም በከፋ የሎጋሪዝም ጊዜ ውስጥ ይሰራል፣ O(log n) ንፅፅሮችን ያደርጋል፣ በድርድር ውስጥ ያሉት ንጥረ ነገሮች ብዛት፣ O is Big O notation፣ እና ሎግ ሎጋሪዝም ነው። ሁለትዮሽ ፍለጋ ቋሚ (ኦ(1)) ቦታ ይወስዳል፣ ይህ ማለት በአልጎሪዝም የሚወሰደው ቦታ በድርድር ውስጥ ካሉት የንጥረ ነገሮች ብዛት ጋር ተመሳሳይ ነው።

የሚመከር: