ቪዲዮ: የተገናኘ ዝርዝርን ሁለትዮሽ መፈለግ ይችላሉ?
2024 ደራሲ ደራሲ: Lynn Donovan | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2023-12-15 23:42
አዎ, ሁለትዮሽ ፍለጋ ላይ ይቻላል የተገናኘ ዝርዝር ከሆነ የ ዝርዝር የታዘዘ እና አንቺ ውስጥ ያሉትን ንጥረ ነገሮች ብዛት ማወቅ ዝርዝር . ግን እየደረደሩ እያለ ዝርዝር , ትችላለህ ወደዚያ መስቀለኛ መንገድ በጠቋሚ በኩል አንድ ነጠላ ንጥረ ነገር በአንድ ጊዜ ይድረሱበት ማለትም ወደ ቀዳሚው መስቀለኛ መንገድ ወይም ቀጣይ መስቀለኛ መንገድ።
እንዲያው፣ ሁለትዮሽ ፍለጋ በተገናኘ ዝርዝር ላይ ሲተገበር የጊዜ ውስብስብነት ምን ይሆን?
የጊዜ ውስብስብነት ከ O (ሎግ n) በላይ መሆን የለበትም. እንደ የተገናኘ ዝርዝር ያደርጋል ከሞከርን የዘፈቀደ መዳረሻ አንሰጥም። ሁለትዮሽ ፍለጋን ተግብር አልጎሪዝም እሱን ያደርጋል እንደምንፈልገው O(n) ይድረሱ ማግኘት የ ዝርዝር እና ወደ መሃል ይሂዱ.
እንዲሁም እወቅ፣ ሁለትዮሽ ፍለጋ እንዴት ነው የሚተገበረው? ሁለትዮሽ ፍለጋ : ፈልግ የተስተካከለ ድርድር በተደጋጋሚ በማካፈል ፍለጋ ክፍተት በግማሽ. ሙሉውን ድርድር በሚሸፍነው ክፍተት ይጀምሩ። ዋጋ ከሆነ ፍለጋ ቁልፉ በክፍተቱ መካከል ካለው ንጥል ያነሰ ነው, ክፍተቱን ወደ ታችኛው ግማሽ ይቀንሱ. አለበለዚያ ወደ የላይኛው ግማሽ ያጥቡት.
ከዚህ ውስጥ፣ ሁለትዮሽ ፍለጋ በአንድ ዝርዝር ውስጥ ያለውን አካል ለማግኘት የትኛውን ዘዴ ይጠቀማል?
ሁለትዮሽ ፍለጋ በተደረደሩ ድርድሮች ላይ ይሰራል. ሁለትዮሽ ፍለጋ በማወዳደር ይጀምራል ኤለመንት ከዒላማው ጋር በድርድር መካከል ዋጋ . ዒላማው ከሆነ ዋጋ ጋር ይዛመዳል ኤለመንት , በድርድር ውስጥ ያለው ቦታ ይመለሳል. ዒላማው ከሆነ ዋጋ ከ ያነሰ ነው ኤለመንት ፣ የ ፍለጋ በረድፉ የታችኛው ግማሽ ይቀጥላል.
በተገናኘ ዝርዝር ውስጥ እንዴት ይደግማሉ?
አን ደጋፊ loop ጥቅም ላይ ሊውል ይችላል በኩል አንድ የተገናኘ ዝርዝር . ተጨማሪ ንጥረ ነገሮች ካሉ ዘዴው ቀጣይ() ወደ እውነት ይመለሳል የተገናኘ ዝርዝር እና አለበለዚያ ውሸት. የሚቀጥለው () ዘዴው በ ውስጥ የሚቀጥለውን አካል ይመልሳል የተገናኘ ዝርዝር እና ምንም ቀጣይ ንጥረ ነገር ከሌለ ልዩ የሆነውን NoSuchElementException ይጥላል።
የሚመከር:
ድርብ የተገናኘ ዝርዝር DLL ከአንድ የተገናኘ ዝርዝር SLL ጋር እንዴት ይነጻጸራል?
ድርብ የተገናኘ ዝርዝር መግቢያ፡- በድርብ የተገናኘ ዝርዝር (DLL) ተጨማሪ ጠቋሚ፣ በተለይም ቀዳሚ ጠቋሚ ተብሎ የሚጠራ፣ ከቀጣዩ ጠቋሚ እና በአንድ የተገናኘ ዝርዝር ውስጥ ካሉ መረጃዎች ጋር ይዟል። SLL የውሂብ መስክ እና የሚቀጥለው አገናኝ መስክ ብቻ ያላቸው አንጓዎች አሉት። ዲኤልኤል 3 መስኮች ስላለው ከኤስኤልኤል የበለጠ ማህደረ ትውስታን ይይዛል
ነጠላ የተገናኘ ዝርዝርን እንዴት ደርድር እችላለሁ?
ከታች ለተገናኘ ዝርዝር ቀላል የማስገባት አይነት አልጎሪዝም አለ። 1) ባዶ የተደረደሩ (ወይም ውጤት) ዝርዝር ይፍጠሩ 2) የተሰጠውን ዝርዝር ያቋርጡ ፣ ለእያንዳንዱ መስቀለኛ መንገድ የሚከተሉትን ያድርጉ ። ሀ) የአሁኑን መስቀለኛ መንገድ በተደረደሩ ወይም በውጤት ዝርዝር ውስጥ አስገባ። 3) የተገናኘውን ዝርዝር ጭንቅላት ወደ የተደረደሩ (ወይም የውጤት) ዝርዝር ራስ ቀይር
ክብ የተገናኘ ዝርዝርን እንዴት ይሰርዛሉ?
ከክበብ የተገናኘ ዝርዝር መሰረዝ ዝርዝሩ ባዶ ካልሆነ ሁለት ጠቋሚዎችን curr እና prev እንገልፃለን እና ጠቋሚውን ከራስ መስቀለኛ መንገድ ጋር እናስጀምረዋለን። የሚሰረዘውን መስቀለኛ መንገድ ለማግኘት currን ተጠቅመው ዝርዝሩን ያዙሩት እና ኩርባውን ወደሚቀጥለው መስቀለኛ መንገድ ከማንቀሳቀስዎ በፊት ሁል ጊዜ prev = curr ያዘጋጁ። መስቀለኛ መንገድ ከተገኘ, በዝርዝሩ ውስጥ ብቸኛው መስቀለኛ መንገድ መሆኑን ያረጋግጡ
በድርብ የተገናኘ ዝርዝር እና በክብ የተገናኘ ዝርዝር መካከል ያለው ልዩነት ምንድን ነው?
ክብ የተገናኘ ዝርዝር የኖስታርት ወይም የመጨረሻ ኖዶች ያሉበት ነው፣ ነገር ግን በምትኩ ክብ ቅርጽን ይከተላሉ። ድርብ-የተገናኘ ዝርዝር እያንዳንዱ መስቀለኛ መንገድ ወደሚቀጥለው መስቀለኛ መንገድ ብቻ ሳይሆን ወደ ቀዳሚው መስቀለኛ መንገድ የሚጠቁምበት አንዱ ነው።
የተገናኘ ዝርዝርን በመጠቀም ቁልል እና ወረፋ መተግበር እንችላለን?
እያንዳንዱ መስቀለኛ መንገድ እሴት እና ወደ ቀጣዩ መስቀለኛ መንገድ አገናኝ አለው። የተገናኘ ዝርዝር ሁለት ታዋቂ መተግበሪያዎች ቁልል እና ወረፋ ናቸው። ወረፋ፡ ወረፋ የዳታ መዋቅር ነው፣ እሱም First in First out(FIFO) መርህን ይጠቀማል። ወረፋ በተደራራቢ፣ ድርድር እና በተገናኘ ዝርዝር ሊተገበር ይችላል።