የተገናኘ ዝርዝርን ሁለትዮሽ መፈለግ ይችላሉ?
የተገናኘ ዝርዝርን ሁለትዮሽ መፈለግ ይችላሉ?

ቪዲዮ: የተገናኘ ዝርዝርን ሁለትዮሽ መፈለግ ይችላሉ?

ቪዲዮ: የተገናኘ ዝርዝርን ሁለትዮሽ መፈለግ ይችላሉ?
ቪዲዮ: NASA እንዴት የህዋ መንኩራኩሮችን ያመጥቃል ሙሉ ቪድዬ እንዳያመልጥችሁ። 2024, ህዳር
Anonim

አዎ, ሁለትዮሽ ፍለጋ ላይ ይቻላል የተገናኘ ዝርዝር ከሆነ የ ዝርዝር የታዘዘ እና አንቺ ውስጥ ያሉትን ንጥረ ነገሮች ብዛት ማወቅ ዝርዝር . ግን እየደረደሩ እያለ ዝርዝር , ትችላለህ ወደዚያ መስቀለኛ መንገድ በጠቋሚ በኩል አንድ ነጠላ ንጥረ ነገር በአንድ ጊዜ ይድረሱበት ማለትም ወደ ቀዳሚው መስቀለኛ መንገድ ወይም ቀጣይ መስቀለኛ መንገድ።

እንዲያው፣ ሁለትዮሽ ፍለጋ በተገናኘ ዝርዝር ላይ ሲተገበር የጊዜ ውስብስብነት ምን ይሆን?

የጊዜ ውስብስብነት ከ O (ሎግ n) በላይ መሆን የለበትም. እንደ የተገናኘ ዝርዝር ያደርጋል ከሞከርን የዘፈቀደ መዳረሻ አንሰጥም። ሁለትዮሽ ፍለጋን ተግብር አልጎሪዝም እሱን ያደርጋል እንደምንፈልገው O(n) ይድረሱ ማግኘት የ ዝርዝር እና ወደ መሃል ይሂዱ.

እንዲሁም እወቅ፣ ሁለትዮሽ ፍለጋ እንዴት ነው የሚተገበረው? ሁለትዮሽ ፍለጋ : ፈልግ የተስተካከለ ድርድር በተደጋጋሚ በማካፈል ፍለጋ ክፍተት በግማሽ. ሙሉውን ድርድር በሚሸፍነው ክፍተት ይጀምሩ። ዋጋ ከሆነ ፍለጋ ቁልፉ በክፍተቱ መካከል ካለው ንጥል ያነሰ ነው, ክፍተቱን ወደ ታችኛው ግማሽ ይቀንሱ. አለበለዚያ ወደ የላይኛው ግማሽ ያጥቡት.

ከዚህ ውስጥ፣ ሁለትዮሽ ፍለጋ በአንድ ዝርዝር ውስጥ ያለውን አካል ለማግኘት የትኛውን ዘዴ ይጠቀማል?

ሁለትዮሽ ፍለጋ በተደረደሩ ድርድሮች ላይ ይሰራል. ሁለትዮሽ ፍለጋ በማወዳደር ይጀምራል ኤለመንት ከዒላማው ጋር በድርድር መካከል ዋጋ . ዒላማው ከሆነ ዋጋ ጋር ይዛመዳል ኤለመንት , በድርድር ውስጥ ያለው ቦታ ይመለሳል. ዒላማው ከሆነ ዋጋ ከ ያነሰ ነው ኤለመንት ፣ የ ፍለጋ በረድፉ የታችኛው ግማሽ ይቀጥላል.

በተገናኘ ዝርዝር ውስጥ እንዴት ይደግማሉ?

አን ደጋፊ loop ጥቅም ላይ ሊውል ይችላል በኩል አንድ የተገናኘ ዝርዝር . ተጨማሪ ንጥረ ነገሮች ካሉ ዘዴው ቀጣይ() ወደ እውነት ይመለሳል የተገናኘ ዝርዝር እና አለበለዚያ ውሸት. የሚቀጥለው () ዘዴው በ ውስጥ የሚቀጥለውን አካል ይመልሳል የተገናኘ ዝርዝር እና ምንም ቀጣይ ንጥረ ነገር ከሌለ ልዩ የሆነውን NoSuchElementException ይጥላል።

የሚመከር: