ዝርዝር ሁኔታ[ደብቅ][አሳይ]
- 1. ድርድርን እንዴት ይገልጹታል?
- 2. ተለዋዋጭ ድርድሮች፡ ምንድናቸው? ከመሠረታዊ አራራይስ የሚለያቸው ምንድን ነው?
- 3. ድርድር እና መዝገበ ቃላት እንዴት ይለያያሉ?
- 4. የድርድር አንዳንድ ጥቅሞችን እና ጉዳቶችን ይዘርዝሩ።
- 5. “Sparse Array” ምንን ያመለክታል?
- 6. የተገናኘ ዝርዝርን ከአንድ ድርድር መቼ ይመርጣሉ?
- 7. ኢንዴክስ የተደረገ ድርድር ከአሶሺዬቲቭ ድርድር የሚለየው ምንድን ነው?
- 8. Heap ከተደረደሩ ድርድሮች ይልቅ ምን ጥቅሞች አሉት?
- 9. የድርድር መጠኑን አሉታዊ መሆኑን መግለፅ እንችላለን?
- 10. የጎደለውን ኢንቲጀር ከ1 እስከ 100-ኤለመንት ድርድር ውስጥ እንዴት ማግኘት ይቻላል?
- 11. በአንድ ድርድር ውስጥ የአንድን ንጥረ ነገር መረጃ ጠቋሚ እንዴት ማግኘት ይቻላል?
- 12. አንድን የተወሰነ አካል ከአንድ ድርድር እንዴት ማስወገድ እንደሚቻል?
- 13. የሁለት ድርድሮች እኩልነት እንዴት ሊረጋገጥ ይችላል?
- 14. ስለ ድርድሮች ስንወያይ “Dimension” እና “Subscript” የሚሉት ሐረጎች ምን ማለትዎ ነው?
- የቃለ መጠይቅ ጥያቄዎች ኮድ ማድረግ
- 15. የተወሰነ ድምር ባለው ድርድር ውስጥ ጥንድ ይፈልጉ
- 16. ሁለትዮሽ ድርድር ከመስመር ጊዜ ጋር መደርደር
- 17. በድርድር ውስጥ ትልቁን ባለ ሁለት ኢንት ምርት ያግኙ።
- 18. ሁሉንም የድርድር ዜሮዎችን ወደ መጨረሻው እንዴት መቀየር እንደሚቻል
- 19. በአንድ ኦፕሬሽን ውስጥ የሚቀያየሩ ሁለት ግቤቶች ያሉት ድርድር እንዴት መደርደር እንደሚቻል።
- 20. ሁለት የተደረደሩ ድርድሮችን በቦታቸው እንዴት እንደሚያጣምሩ.
- 21. በተለዋዋጭ ከፍተኛ እና ዝቅተኛ ቦታዎች ላይ የእቃዎችን ድርድር እንዴት እንደገና ማዘዝ ይቻላል?
- 22. የዲቪዥን ኦፕሬተርን ሳይጠቀሙ እያንዳንዱን የድርድር አካል እንዴት በድርድሩ ውስጥ ካለው የእያንዳንዱ ንጥረ ነገር ምርት ጋር እንዴት መተካት እንደሚቻል?
- 23. በሎጋሪዝም ጊዜ ውስጥ በጣም እንግዳ የሆነውን ነገር በድርድር ውስጥ ያግኙ
- 24. በክብ ድርድር ውስጥ ለእያንዳንዱ ኤለመንት ተከታዩን ትልቅ አካል እንዴት ማግኘት ይቻላል?
- 25. የድርድር የተገላቢጦሽ ቆጠራ ይፈልጉ?
- 26. የዝናብ ውሃ የመያዝ ችግር ምንድነው?
- መደምደሚያ
የኮድ ቃለ-መጠይቆች ተከታታይ የDSA ጥያቄዎችን ይይዛሉ። ለመጪው የቴክኖሎጂ ቃለ መጠይቅ ከFAANG ወይም ከሌላ ደረጃ-1 የቴክኖሎጂ ንግድ ጋር ለመዘጋጀት እየተዘጋጁ ከሆነ በድርድር የተካኑ መሆን አለቦት።
በአብዛኛዎቹ የኮድ ቃለ-መጠይቆች፣ ወደ Strings ሁለተኛ ቦታ ይመጣል። ድርድር በማህደረ ትውስታ ውስጥ እርስ በርስ በቅርበት የተቀመጡ ተዛማጅ የውሂብ አካላት መቧደን ነው።
እንደ ሲ፣ ሲ++፣ ጃቫ፣ ፓይዘን፣ ፐርል እና ሩቢ ካሉ የፕሮግራም አወጣጥ ቋንቋዎች ጋር የተገናኙ በመሆናቸው በሁሉም ቦታ ይገኛሉ። ለአንዳንድ የመለማመጃ ፈተናዎች ማንበብዎን ይቀጥሉ እና በድርድር ላይ ተመስርተው ጥያቄዎችን እና መልሶችን ቃለ-መጠይቅ ያድርጉ።
ፓይዘን የኮድ ጉዳዮችን ለመፍታት በዚህ ልጥፍ ውስጥ ጥቅም ላይ ይውላል ምክንያቱም ለመጠቀም ቀላል፣ ለመረዳት እና ለብዙዎቻችን የተለመደ መሆን አለበት።
እንጀምር.
1. ድርድርን እንዴት ይገልጹታል?
- ተዛማጅ የውሂብ አይነቶች ቡድን ድርድር ነው።
- ድርድሮች ሁልጊዜ ተስተካክለዋል.
- ተመሳሳይ አይነት ተለዋዋጭ በበርካታ ቦታዎች ላይ በተደራረቡ ነገሮች ይከማቻል.
- የጥንታዊ ዓይነቶች እና የነገር ማጣቀሻዎች ሁለቱም ከሱ ጋር ይጣጣማሉ።
2. ተለዋዋጭ ድርድሮች፡ ምንድናቸው? ከመሠረታዊ አራራይስ የሚለያቸው ምንድን ነው?
ተለዋዋጭ ድርድሮች (እንዲሁም ሊበቅሉ የሚችሉ ድርድሮች፣ተለዋዋጭ ድርድሮች፣ ወይም ArrayLists በጃቫ) የሚባሉት አውቶማቲክ ልኬት ትልቅ ጥቅም ነው።
ድርድሮች ቋሚ መጠን ስላላቸው ድርድርዎ ምን ያህል ንጥረ ነገሮችን እንደሚያከማች ሁልጊዜ ማወቅ አለቦት። ተለዋዋጭ ድርድር፣ በሌላ በኩል፣ ተጨማሪ አባላትን ስትጨምር ያድጋል፣ ስለዚህ መጠኑን በትክክል ማወቅ አያስፈልግህም።
3. ድርድር እና መዝገበ ቃላት እንዴት ይለያያሉ?
ይህ በመሠረታዊነት ላይ የተመሰረተ በመደበኛነት የሚጠየቁ የቃለ መጠይቅ ጥያቄዎች ስብስብ ነው። በድርድር እና በመዝገበ-ቃላት መካከል ያሉት ዋና ዋና ልዩነቶች የሚከተሉት ናቸው።
- ድርድር የታዘዘ ተመሳሳይ እቃዎች ዝርዝር ነው። በሌላ በኩል መዝገበ ቃላት ቁልፍ-እሴት ጥንዶች አሉት።
- የድርድር መጠኖች በተለዋዋጭ ሊለወጡ ይችላሉ። እንደዚህ አይነት ተለዋዋጭ ሀሳቦች በመዝገበ-ቃላት ውስጥ የሉም.
- ድርድርን ከመጠቀምዎ በፊት መጠኑ መገለጽ አለበት። የመዝገበ-ቃላት መጠኖች ማበጀት አያስፈልጋቸውም።
- የአደራደሩን መጠን ለማስፋት ከፈለጉ የ Redim መግለጫን ይጠቀሙ። በመዝገበ-ቃላት ውስጥ አንድ አካል ያለ መግለጫ ሊታከል ይችላል።
4. የድርድር አንዳንድ ጥቅሞችን እና ጉዳቶችን ይዘርዝሩ።
ጥቅሞች:
- ድርድሮች በርካታ አባሎችን በአንድ ጊዜ መደርደር ይችላሉ።
- ሌላ የውሂብ መዋቅሮችእንደ ቁልል፣ ወረፋ፣ የተገናኙ ዝርዝሮች፣ ዛፎች፣ ግራፎች፣ ወዘተ የመሳሰሉት በድርድር ውስጥ ሊተገበሩ ይችላሉ።
- መረጃ ጠቋሚ የአንድ ድርድር አባል ለመድረስ ጥቅም ላይ ሊውል ይችላል።
ጥቅምና:
- የድርድር መጠን አስቀድሞ መታወቅ አለበት። በድርድር መግለጫ ጊዜ፣ የምንፈልገውን መጠን ግን ላናውቅ እንችላለን።
- የድርድር አወቃቀሩ የማይንቀሳቀስ ነው። እሱ የሚያመለክተው የድርድር መጠን ሁል ጊዜ ቋሚ እና የማህደረ ትውስታ ምደባ ሊጨምር ወይም ሊቀንስ እንደማይችል ነው።
5. “Sparse Array” ምንን ያመለክታል?
ትንሽ ድርድር ብዙ ዜሮ እሴቶች ያላቸው ብዙ ግቤቶች ያሉት የውሂብ ድርድር ነው። በአንጻሩ፣ ጥቅጥቅ ያለ ድርድር ዜሮ ያልሆኑ እሴቶች ያላቸውን አብዛኛዎቹን እቃዎች ይይዛል። ቁጥሮችን ወደ ነገሮች የሚቀይር የትንሽ ድርድር ጠቋሚዎች ክፍተቶችን ሊያካትት ይችላል። ከ HashMap ጋር ሲነጻጸሩ የበለጠ የማስታወስ ችሎታ ያላቸው ናቸው።
6. የተገናኘ ዝርዝርን ከአንድ ድርድር መቼ ይመርጣሉ?
ከድርድር ይልቅ የተገናኙ ዝርዝሮችን ሲጠቀሙ፣ ያስቡበት፡-
- የዘፈቀደ መዳረሻ እንዲኖርዎት ምንም ንጥረ ነገሮች አያስፈልጉዎትም።
- ጊዜያዊ መተንበይ አስፈላጊ በሚሆንበት ጊዜ፣ ከዝርዝሩ ውስጥ የማያቋርጥ ማስገባት እና ማስወገድ ያስፈልግዎታል።
- የቅድሚያ ወረፋ ለመፍጠር እቃዎችን በዝርዝሩ መሃል ላይ ማስቀመጥ ሊኖርብዎ ይችላል።
- ዝርዝሩ ለምን ያህል ጊዜ እንደሚሆን አታውቁም. የድርድር መጠኑ ከፍ ካለ፣ ልክ እንደ ቀላል ድርድሮች ማህደረ ትውስታን እንደገና ማወጅ እና ማባዛት አለብዎት።
7. ኢንዴክስ የተደረገ ድርድር ከአሶሺዬቲቭ ድርድር የሚለየው ምንድን ነው?
በተጓዳኝ እና በመረጃ ጠቋሚ ድርድር መካከል ያሉት ዋና ዋና ልዩነቶች በሚከተለው ሠንጠረዥ ውስጥ ተዘርዝረዋል።
- የቁልፍ-እሴት ጥንድ በጽሑፍ ወይም በቁጥር ቅርፀት የተቆራኘ አደራደር ለመደርደር ጥቅም ላይ ይውላል። የተጠቆሙት የድርድር ቁልፎች ሁሉም ቁጥራዊ ናቸው፣ እና እያንዳንዱ ቁልፍ ከተለየ እሴት ጋር የተገናኘ ነው።
- በተጓዳኝ ድርድር ውስጥ ቁልፉ ሕብረቁምፊ ሊሆን ይችላል። ከ 0 ጀምሮ የኢንቲጀር ቁልፎች ያሉት የተጠቆመ ድርድር።
- ባለ ሁለት አምድ ሠንጠረዥ የአሶሺዬቲቭ ድርድር ባህሪን ይመስላል። ከአንድ አምድ ሠንጠረዥ ጋር ተመሳሳይነት ያላቸው ድርድር የተጠቆሙ ናቸው።
- ካርታዎች አሶሺዬቲቭ ድርድር አይነት ናቸው። የመረጃ ጠቋሚ ድርድር ካርታ አይደለም።
8. Heap ከተደረደሩ ድርድሮች ይልቅ ምን ጥቅሞች አሉት?
ክምር በተደረደሩ ድርድሮች ላይ የመጠቀም የጊዜ ቅልጥፍና ቁልፍ ጥቅሙ ነው። ክምር ስራዎች ፈጣን ሲሆኑ፣ ድርድር መደርደር ብዙ ጊዜ ይጠይቃል። ክምር አንድ ድርድር ሊደረደር ከሚችለው በላይ ትንሹን ንጥረ ነገር በፍጥነት ሊያገኝ ይችላል።
የተደረደሩ ድርድሮችን በመጠቀም የተሰጠው የቁጥሮች ስብስብ ከሁለት መንገዶች በአንዱ ሊዘጋጅ ይችላል። በሌላ በኩል፣ ለተወሰነ የቁጥሮች ስብስብ፣ ከአንድ በላይ እምቅ ክምር ሊኖር ይችላል።
9. የድርድር መጠኑን አሉታዊ መሆኑን መግለፅ እንችላለን?
አይ፣ አሉታዊ ኢንቲጀር የአንድ ድርድር መጠን ነው ብለን ልንገልጸው አንችልም። ካወቅን የማጠናቀር ጊዜ ስህተት አይኖርም። በሂደት ላይ፣ ሆኖም ግን፣ NegativeArraySizeException ያጋጥመናል።
10. የጎደለውን ኢንቲጀር ከ1 እስከ 100-ኤለመንት ድርድር ውስጥ እንዴት ማግኘት ይቻላል?
የተከታታዩ አጠቃላይ ድምር የሚከተለውን ተግባር በመተግበር ሊሰላ ይችላል፡ n (n + 1) / 2
ድርድር ምንም ብዜቶች ከሌለው ወይም ከአንድ በላይ ኢንቲጀር ከጠፋ ብቻ ይህ ተግባር ይሰራል። አንድ ድርድር የተባዙ አካላት ቢኖረውም፣ አቻ የሆኑ ንጥረ ነገሮች ካሉ ለማየት ድርድርን መደርደር ትችላለህ።
11. በአንድ ድርድር ውስጥ የአንድን ንጥረ ነገር መረጃ ጠቋሚ እንዴት ማግኘት ይቻላል?
የአንድ ንጥረ ነገር መረጃ ጠቋሚ በመስመራዊ ወይም በሁለትዮሽ ፍለጋ ሊገኝ ይችላል። የሚፈለገውን ንጥረ ነገር ግጥሚያ እስኪያገኝ ድረስ፣ መስመራዊ የፍለጋ ተግባር በአንድ ድርድር ውስጥ ባሉ እያንዳንዱ እና እያንዳንዱ ንጥረ ነገሮች ላይ ይንሸራተታል። የሚዛመደውን ኤለመንት ካገኘ በኋላ ጠቋሚውን ይመልሳል። ስለዚህ፣ የመስመር ፍለጋው ጊዜያዊ ውስብስብነት O. (n) ነው። ሁለቱም የተደረደሩ እና ያልተደረደሩ ድርድር መስመራዊ ፍለጋን መጠቀም ይችላሉ።
የሁለትዮሽ ፍለጋን በመጠቀም፣ የክፍለ ጊዜው መካከለኛ ከሚፈለገው አካል ጋር እስኪመሳሰል እና መረጃ ጠቋሚውን እስኪሰጥ ድረስ ድርድርን ያለማቋረጥ ለሁለት የሚከፍል ከሆነ ድርድር ከተደረደረ የንጥሉን መረጃ ጠቋሚ ማግኘት ይችላሉ። ስለዚህ፣ የሁለትዮሽ ፍለጋው ጊዜያዊ ውስብስብነት O. (log n) ነው።
12. አንድን የተወሰነ አካል ከአንድ ድርድር እንዴት ማስወገድ እንደሚቻል?
የተወሰነ መጠን ያላቸው ቋሚ ስብስቦች ስለሆኑ ኤለመንቶችን ከዋናው ድርድር በቀላሉ መሰረዝ ስለማይችሉ፣ ቃለ-መጠይቁ ጠያቂው የተለየ አካሄድ እንዲጠቁሙ እና ጥያቄው የሚያነሳውን ችግር እንዲፈቱ ይፈልጋል። በጣም ጥሩው የእርምጃ አካሄድ አንድን አካል ለመሰረዝ አዲስ ድርድር ማድረግ ነው። በዚህ ድርድር ውስጥ ያሉትን ንጥረ ነገሮች ከመጀመሪያው ድርድር ማባዛት እና መሰረዝ የሚፈልጉትን አካል ብቻ ማካተት ይችላሉ።
ሌላው ስልት በድርድር ውስጥ የታለመውን አካል መፈለግ እና ከዚያም ከዒላማው አካል በስተቀኝ ያሉትን ሁሉንም እቃዎች ቅደም ተከተል መቀልበስን ያካትታል.
13. የሁለት ድርድሮች እኩልነት እንዴት ሊረጋገጥ ይችላል?
በመጀመሪያ የቀረቡትን ሁለት ድርድሮች ርዝማኔ ማረጋገጥ አለብህ። የሁለቱም ድርድሮች ተዛማጅ እቃዎች ርዝመታቸው እኩል በሚሆንበት ጊዜ ይነጻጸራሉ. ሁለቱ ድርድሮች እንደ እኩል ይቆጠራሉ. በእያንዳንዱ የደብዳቤ ልውውጥ ውስጥ ያሉት እያንዳንዱ ጥንድ ክፍሎች እኩል ከሆኑ። ይህ አካሄድ ብዙ ጊዜ የሚወስድ በመሆኑ ትልቅ መጠን ያለው ከሆነ የሁለት ድርድሮችን እኩልነት ለማረጋገጥ አይመከርም። እንዲሁም በ Arrays ክፍል ውስጥ የተካተተውን የእኩልነት() ዘዴን መጠቀም ትችላላችሁ፣ነገር ግን ቃለ-መጠይቁ ጠያቂው አብሮ የተሰሩ ዘዴዎችን ሳይጠቀሙ ሁለት ድርድሮችን እንድታወዳድሩ ከጠየቀ ይህ መንገድ ጠቃሚ ይሆናል።
14. ስለ ድርድሮች ስንወያይ “Dimension” እና “Subscript” የሚሉት ሐረጎች ምን ማለትዎ ነው?
የአንድ ድርድር “ልኬት” እያንዳንዱን አባል ለመለየት የሚያስፈልጉ ኢንዴክሶች፣ ወይም ንዑስ ጽሑፎች ብዛት ነው። የደንበኝነት ምዝገባዎች እና ልኬቶች ግልጽ ላይሆኑ ይችላሉ። ልኬት የተፈቀዱ ቁልፎች ክልል መግለጫ ሲሆን ንዑስ መዝገብ ግን ቁጥር ነው። ለእያንዳንዱ የድርድር ልኬት አንድ የደንበኝነት ምዝገባ ብቻ ያስፈልጋል።
ለምሳሌ፣ የድርድር አደራደር[10][5] ሁለት ልኬቶች አሉት። መጠኖች 10 በአንደኛው እና 5 በሌላኛው ላይ። ክፍሎቹን ለመፍታት ሁለት የደንበኝነት ምዝገባዎችን ያስፈልግዎታል። ሁለቱም በ 0 እና 4 መካከል ናቸው; አንድ በ 0 እና 9 መካከል ፣ አካታች።
የቃለ መጠይቅ ጥያቄዎች ኮድ ማድረግ
15. የተወሰነ ድምር ባለው ድርድር ውስጥ ጥንድ ይፈልጉ
ለምሳሌ,
ግቤት
- ቁጥሮች = [8, 7, 2, 5, 3, 1]
- ዒላማ = 10
ውጤት
- ጥንድ ተገኝቷል (8, 2)
- Or
- ጥንድ ተገኝቷል (7, 3)
ግቤት
- ቁጥሮች = [5, 2, 6, 8, 1, 9]
- ዒላማ = 12
ውጤት
- ጥንድ አልተገኘም።
16. ሁለትዮሽ ድርድር ከመስመር ጊዜ ጋር መደርደር
የሁለትዮሽ ድርድር በመስመር ጊዜ እና በቋሚ ቦታ ደርድር። ውጤቱ መጀመሪያ ሁሉንም ዜሮዎች ከዚያም ሁሉንም ማሳየት አለበት።
ለምሳሌ,
- ግቤት፡ {1, 0, 1, 0, 1, 0, 0, 1}
- ውጤት፡ {0, 0, 0, 0, 1, 1, 1, 1}
ቀጥተኛ አቀራረብ የድርድር ጠቅላላውን የ 0 ዎች ቁጥር በማስላት ፣ k ይበሉ ፣ እና በመቀጠል በድርድር ውስጥ ያሉትን የመጀመሪያ k ኢንዴክሶች በ 0s ፣ የተቀሩትን ኢንዴክሶች በ 1 ይሙሉ ። እንደ አማራጭ ፣ በጠቅላላው ስንት 1ዎች እንደሆኑ እናሰላለን። array k፣ በድርድር ውስጥ ያሉትን የመጨረሻ k ኢንዴክሶች በ1 ይሙሉ እና የተቀሩትን ኢንዴክሶች በ0 ይተው።
የተሰጠው አካሄድ የO(n) ጊዜ ውስብስብነት ያለው ሲሆን ምንም ተጨማሪ ማከማቻ አይጠቀምም፣ n የመግቢያው መጠን ነው።
17. በድርድር ውስጥ ትልቁን ባለ ሁለት ኢንት ምርት ያግኙ።
የሁለት ቁጥሮች ትልቁን ኢንቲጀር ድርድር ያግኙ።
ድርድር 10 3 5 6 2ን እንደ ምሳሌ አስቡት። (-10, -3) ወይም (5, 6) ጥንድ ከፍተኛው ምርት ነው.
ስለ እያንዳንዱ ንጥረ ነገር ጥምረት ማሰብ እና ምርታቸውን ለማወቅ የሞኝነት አካሄድ ነው። የአሁኑ ጥንድ ምርት እስካሁን ከተገኘው ከፍተኛ ምርት የበለጠ ከሆነ ከፍተኛውን ምርት ያዘምኑ። የመጨረሻውን ምርት አካላት በመጨረሻ ያትሙ.
ከላይ ያለው መፍትሄ n የግቤት መጠን ሲሆን የ O(n2) ውስብስብነት ያለው እና ምንም ተጨማሪ ቦታ አይወስድም.
18. ሁሉንም የድርድር ዜሮዎችን ወደ መጨረሻው እንዴት መቀየር እንደሚቻል
ሁሉንም ዜሮዎች በኢንቲጀር ድርድር ወደ መጨረሻው ያንቀሳቅሱ። መልሱ ቋሚ ቦታን ከመጠቀም መቆጠብ እና የድርድር ክፍሎችን አንጻራዊ ቅደም ተከተል መጠበቅ አለበት።
ግብዓት: {1,2,3,0,8,0,4,7}
ውጤቱ {1,2,3,8,4,7,0,0} ይሆናል
የአሁኑ ኤለመንት ዜሮ ካልሆነ ክፍሉን በሚከተለው ቦታ ያስቀምጡት። የአደራደሩ እቃዎች በሙሉ ከተሰሩ በኋላ ሁሉንም የቀሩትን ኢንዴክሶች በ0 ይሙሉ።
ቀዳሚው መፍትሔ የO(n) የጊዜ ውስብስብነት አለው፣ n የመግቢያው መጠን ነው።
19. በአንድ ኦፕሬሽን ውስጥ የሚቀያየሩ ሁለት ግቤቶች ያሉት ድርድር እንዴት መደርደር እንደሚቻል።
ሁለት የተለዋወጡ ዕቃዎችን እና ሁሉንም ንጥረ ነገሮቹ በከፍታ ቅደም ተከተል የተደረደሩ ድርድር በተሰጠበት በመስመር ጊዜ ውስጥ ደርድር። ድርድር ምንም ብዜቶች እንዳልያዘ አስመስለው።
ግቤት፡= [1,9,3,4,7,2] ወይም [9,3,7,2,1,4] ወይም [2,4,1,7,3,9]
ውጤት፡ = [1,2,3,4,7,9]
በድርድር ውስጥ ካለው ሁለተኛው አካል ጀምሮ፣ ዓላማው እያንዳንዱን ንጥረ ነገር ከቀድሞው ጋር ማወዳደር ነው። የክርክሩ ቦታ የሚቀመጠው ሁለት ጠቋሚዎችን x እና y በመውሰድ ነው።
x ወደ ቀዳሚው ኤለመንት ኢንዴክስ ያዘምኑ እና የቀድሞው ከሁለተኛው የሚበልጥ ከሆነ y ወደ የአሁኑ ንጥረ ነገር መረጃ ጠቋሚ ያዘምኑ። የቀድሞው ኤለመንት ከአሁኑ ኤለመንት የሚበልጥ ከሆነ yን ወደ የአሁኑ ኤለመንት መረጃ ጠቋሚ ያዘምኑ።
በመጨረሻም ፣እያንዳንዳቸውን ተያያዥ የሆኑ ጥንድ ንጥረ ነገሮችን እንደጨረስን ንጥረ ነገሮቹን በ x እና y ቀይር።
ቀደም ሲል የተጠቀሰው ዘዴ የመጠን ግቤት ድርድር አንድ ነጠላ ቅኝት ብቻ ስለሚያከናውን, የጊዜ ውስብስብነቱ O (n) ነው. ለመፍትሄው ምንም ተጨማሪ ክፍል አያስፈልግም.
20. ሁለት የተደረደሩ ድርድሮችን በቦታቸው እንዴት እንደሚያጣምሩ.
የረድፎችን X[] እና Y[]—ሁለት የተደረደሩ መጠናቸው m እና n እያንዳንዳቸው—የተደረደሩትን ቅደም ተከተሎች በማቆየት ማለትም X[]ን ከመጀመሪያዎቹ ሜትር ጥቃቅን ንጥረ ነገሮች ጋር በመሙላት Y[]ን በ የተቀሩት ንጥረ ነገሮች.
በድርድር X[] ውስጥ ያለ ኤለመንት በትክክለኛው ቦታ ላይ ካለ (ማለትም፣ ከቀሪዎቹ ንጥረ ነገሮች መካከል ትንሹ የሆነው)፣ ችላ ይበሉት፣ ያለበለዚያ በትንሹ ኤለመንት ይተኩ፣ እሱም የY[] የመጀመሪያ አባል ይሆናል። ከተቀያየሩ በኋላ የተደረደሩትን ቅደም ተከተሎች ለማቆየት ኤለመንቱን (አሁን በ Y[0]) በ Y[] ውስጥ ወዳለው ትክክለኛ ቦታ ያስተላልፉ።
የመጀመሪያው ድርድር መጠን m ሲሆን ሁለተኛው ድርድር መጠን n ነው, እና የጊዜ ውስብስብነት O (mn) ነው.
21. በተለዋዋጭ ከፍተኛ እና ዝቅተኛ ቦታዎች ላይ የእቃዎችን ድርድር እንዴት እንደገና ማዘዝ ይቻላል?
እያንዳንዱ ተከታይ አባል ከቀደምት እና ከሚከተለው ንጥረ ነገሮች የበለጠ እንዲሆን የኢንቲጀር ድርድርን እንደገና ያስተካክሉ። ድርድር ምንም የተባዙ አባሎችን እንደማያካትት አስብ።
አደራደሩን መደርደር ወይም ተጨማሪ ቦታን መጠቀም ለውጤታማ አቀራረብ አስፈላጊ አይደለም። እቅዱ በመጀመር የድርድር ሁለተኛው አባል እና ለእያንዳንዱ የሉፕ ድግግሞሽ በሁለት ከፍ ማለት ነው።
የመጨረሻው ንጥረ ነገር ከመጀመሪያው ካለፈ ክፍሎቹን ይቀይሩ. በተመሳሳይ ሁኔታ, የሚከተለው ንጥረ ነገር አሁን ካለው አካል የበለጠ ከሆነ ሁለቱንም እቃዎች ይቀይሩ. በሉፕ ማጠቃለያ ላይ ከተገለጹት ገደቦች ጋር የሚስማማ የተፈለገውን ድርድር እናገኛለን።
22. የዲቪዥን ኦፕሬተርን ሳይጠቀሙ እያንዳንዱን የድርድር አካል እንዴት በድርድሩ ውስጥ ካለው የእያንዳንዱ ንጥረ ነገር ምርት ጋር እንዴት መተካት እንደሚቻል?
የዲቪዥን ኦፕሬተርን ሳይጠቀሙ፣ እያንዳንዱን ንጥረ ነገር በኢንቲጀር ድርድር ውስጥ ከሌሎች ንጥረ ነገሮች ምርት ጋር ይተኩ።
በመስመራዊ ጊዜ እና በቋሚ ቦታ፣ ይህንን ችግር ለመፍታት ተደጋጋሚነትን መጠቀም እንችላለን። በቀኝ ንዑስ ክፍል ውስጥ ያሉትን የእያንዳንዱን ንጥረ ነገሮች ምርቶች ደጋግሞ ማስላት እና የግራ ንዑስ ክፍልን ምርት እንደ ተግባር መለኪያዎች ማለፍ ሀሳቡ ነው።
የጊዜ ውስብስብነት O(n) ነው።
23. በሎጋሪዝም ጊዜ ውስጥ በጣም እንግዳ የሆነውን ነገር በድርድር ውስጥ ያግኙ
ከአንድ አባል በስተቀር ሁሉም ቁጥር ያላቸው ክስተቶች ካሉበት የኢንቲጀር አደራደር አንጻር ችግሩ ይህ አንድ አካል ስንት ጊዜ እንደሚታይ መወሰን ነው። ተመሳሳይ ንጥረ ነገሮች በድርድሩ ውስጥ በጥንድ ሆነው ከተከሰቱ እና በአንድ ረድፍ ውስጥ ከአንድ የተወሰነ ንጥረ ነገር ከሁለት በላይ ሊሆኑ የማይችሉ ከሆነ በሎጋሪዝም ጊዜ እና በቋሚ ቦታ ላይ ያልተለመደ ክስተት ይፈልጉ።
የXOR ክወና ይህንን ችግር በመስመራዊ ጊዜ እንድንፈታ ያስችለናል። ግቡ በድርድር ውስጥ ያለውን እያንዳንዱን ንጥረ ነገር XOR ማድረግ ነው። የተከሰቱ ንጥረ ነገሮች እርስ በርስ ከተሰረዙ በኋላ ያልተለመዱ ነገሮች ብቻ ይቀራሉ።
ይህ ችግር በO(log(n)) ጊዜ ውስጥ እንኳን ሊፈታ ይችላል።
24. በክብ ድርድር ውስጥ ለእያንዳንዱ ኤለመንት ተከታዩን ትልቅ አካል እንዴት ማግኘት ይቻላል?
በክብ ኢንቲጀር ድርድር ውስጥ ላለው እያንዳንዱ አካል ቀጣዩ ትልቅ አካል መቀመጥ አለበት። በድርድር ውስጥ ካለው ኤለመንት x በኋላ ያለው የመጀመሪያው ትልቅ ኢንቲጀር የዚያ ንጥረ ነገር ተከታይ ትልቅ አካል ነው።
ከቀኝ ወደ ግራ፣ በተደራጁ ዕቃዎች ላይ ልንሠራ እንችላለን። ግቡ ቁልል ባዶ እስኪሆን ወይም በላዩ ላይ ከፍ ያለ ንጥረ ነገር እስኪኖረን ድረስ ለእያንዳንዱ ኤለመንት x ቀለበት ማድረግ ነው። ቀጣዩ ትልቅ የ x ኤለመንት በሚሰራበት ጊዜ ቁልል አናት ላይ እንዲታይ ያዘጋጁ።
25. የድርድር የተገላቢጦሽ ቆጠራ ይፈልጉ?
የአንድ ድርድር ጠቅላላ የተገላቢጦሽ ብዛት ያግኙ። ጥንድ I j) የድርድር A ከሆነ እኔ j) እና (A[i] > A[j]) መገለባበጥ ተጠቅሷል። እነዚህን ሁሉ ጥንድ በድርድሩ ውስጥ መቁጠር አለብን።
ከእሱ ያነሱትን ሁሉንም የተደራጁ አባላት በቀኝ በኩል በመቁጠር ውጤቱን ወደ ውጤቱ ማከል ቀጥተኛ አቀራረብ ነው።
ይህ መፍትሔ የ O (n2) ውስብስብነት አለው, n የመግቢያው መጠን ነው.
26. የዝናብ ውሃ የመያዝ ችግር ምንድነው?
በእያንዳንዳቸው የአንድ ክፍል ስፋት ባለው በተሰጡ አሞሌዎች ውስጥ ሊታሰር የሚችለውን ከፍተኛውን ውሃ ማግኘት “የማጥመድ ዝናብ” ጉዳይ በመባል ይታወቃል።
ግቡ በእያንዳንዱ አሞሌ ግራ እና ቀኝ ሊቀመጥ የሚችለውን ከፍተኛውን አሞሌ መወሰን ነው። በግራ እና በቀኝ ያሉት የመሪ አሞሌዎች ዝቅተኛው ፣ አሁን ካለው የአሞሌ ቁመት ያነሰ ፣ በእያንዳንዱ አሞሌ ላይ የተከማቸ የውሃ መጠን ነው።
መደምደሚያ
ከሌሎች የውሂብ መዋቅር ርእሶች ጋር ሲነጻጸር፣ ድርድሮች ቀለል ያሉ ናቸው። የድርድር ቃለ መጠይቅ ጥያቄዎችን ለማቅረብ፣ የድርድር መሰረታዊ ግንዛቤ ሊኖርህ ይገባል።
የድርድር ስራዎችን (ድርድርን ከማወጅ/መፍጠር እስከ የአደራደር ዕቃዎችን መድረስ/መቀየር) እንዲሁም የአደራደር ቃለ መጠይቅ ጥያቄዎችን በተሳካ ሁኔታ ለመመለስ እንደ loops፣ recursion እና መሰረታዊ ኦፕሬተሮች ያሉ የፕሮግራም አወጣጥ ፅንሰ ሀሳቦችን ጨምሮ የድርድር መሰረትን በስፋት መገምገም አለቦት። ጉዳዩን ሙሉ በሙሉ ይገንዘቡ.
ማናቸውም ጥያቄዎች ካሉዎት ማብራሪያ መፈለግ አለብዎት። ጉዳዩን ወደ ይበልጥ ማስተዳደር ወደሚችሉ ክፍሎች ስለመከፋፈል ያስቡ። ፕሮግራሚንግ ከመጀመርዎ በፊት አልጎሪዝምን ግምት ውስጥ ማስገባትዎን ያረጋግጡ; በወራጅ ገበታ ላይ ይፃፉት ወይም በዓይነ ሕሊናዎ ይሳሉት። ከዚያም ኮድ መጻፍ ይጀምሩ.
መልስ ይስጡ