ﺳﺎﺧﺘﻤﺎندادهﻫﺎ و ﻣﺒﺎﻧ اﻟ ﻮرﯾﺘﻢﻫﺎ ﻧﯿﻢﺳﺎل دوم ٩۵-٩۴ ﻣﺪرس :دﮐﺘﺮ ﻋﻠ ﺷﺮﯾﻔ داﻧﺸ ﺪهی ﻣﻬﻨﺪﺳ ﮐﺎﻣﭙﯿﻮﺗﺮ ﺗﻤﺮﯾﻦ ﻧﻈﺮی ﺳﻮم ﺗﺤﻠﯿﻞ اﻟ ﻮرﯾﺘﻢ ﻫﺎی ﺑﺎزﮔﺸﺘ و ﺳﺮﺷ ﻦ آرزو ﻓﺎﻃﻤ ﻣﺴﺌﻠﻪی .١ﻣﺮﺗﺒﻪ زﻣﺎﻧ ﻣﺮﺗﺒﻪ زﻣﺎﻧ راﺑﻄﻪﻫﺎی ﺑﺎزﮔﺸﺘ زﯾﺮ را ﻣﺤﺎﺳﺒﻪ ﮐﻨﯿﺪ. n log n 1. T (n) = T ( n2 ) + 2. T (n) = 2T ( n2 ) + logn n √ 3. T (n) = T ( n2 + n) + T ( n2 ) + 1 αi = 1 ∑k k > 1, i 4. T (n) = T (n/4) + lg3 n ∑ )5. T (n) = ki T (αi n) + O(n √ n nT ( ) + 1 2 = )6. T (n )7. T (n) = 2T (n − 1) + 2T (n − 2) + ... + 2T (1 √ √ )8. T (n) = nT ( n) + Θ(n ﻋﺒﺎرت ) (۶و ) (٧را ﺑﺎ ﻫﻢ ﻣﻘﺎﯾﺴﻪ ﮐﻨﯿﺪ. ﺣﻞ. .١ﺑﺎ اﺳﺘﻔﺎده از ﻗﻀﯿﻪ اﺻﻠ T (n) = Θ( logn n ) : .٢ﺗﻐﯿﯿﺮ ﻣﺘﻐﯿﺮT (n) = Θ(nlg(lg(n))): n = ٢k , .٣ﺣﺪس و اﺳﺘﻘﺮاT (n) = Θ(n) : .۴ﻗﻀﯿﻪ اﺻﻠ T (n) = Θ(lg۴ n) : .۵ﺣﺪس و اﺳﺘﻘﺮاT (n) = Θ(nlgn) : .۶ﺗﻐﯿﯿﺮ ﻣﺘﻐﯿﺮ و ﺟﺎﮔﺬاریT (n) = n(lg n+١)/۴ : .٧ﺣﺪس و اﺳﺘﻘﺮا ﯾﺎ ﺳﺎده ﮐﺮدنT (n) = T (١) × ٣n−١ : .٨درﺧﺖ ﺑﺎزﮔﺸﺖT (n) = Θ(nlg(lg(n))) : ﺑﺮای ﻣﻘﺎﯾﺴﻪ ی ﻋﺒﺎرت ۶و ٧از ﻫﺮ ﮐﺪام ﻟ ﺎرﯾﺘﻢ ﻣﯿ ﯿﺮﯾﻢ ،در ﻧﺘﯿﺠﻪn(lg n+١)/۴ = o(T (١) × ٣n−٢ ) : ▷ ١ ﻣﺴﺌﻠﻪی .٢ﮐﺘﺎب ﺳﻮاﻻت زﯾﺮ را از ﮐﺘﺎب درﺳ )ﮐﺘﺎب دﮐﺘﺮ ﻗﺪﺳ ( ﺣﻞ ﮐﻨﯿﺪ. • ۴ .٢-۴-٣ﺣﻞ .ﺑﺎ ﻧﻮﺷﺘﻦ راﺑﻄﻪ ی ﺑﺎزﮔﺸﺘ از روی ﺣﺎﻟﺖ ﻫﺎی ﮐﻮﭼ ﺘﺮ و و ﺑﺎ داﺷﺘﻦ راﺑﻄﻪ ی ﺑﺮج ﻫﺎﻧﻮی اﺻﻠ ﺑﺪﺳﺖ ﻣ آﯾﺪ • ١ .۵-٣ﺣﻞ .در ﻫﺮ ﻃﺒﻘﻪ ی درﺧﺖ ) O(nﮐﺎر اﻧﺠﺎم ﻣﯿﺸﻮد و ارﺗﻔﺎع درﺧﺖ ) O(lgnاﺳﺖ. • ۶ .۵-٣ﺣﻞ .ﺑﺎ ﮐﺸﯿﺪن درﺧﺖ ﺑﻪ ﯾ ▷ ▷ ﺳﺮی ﻫﻨﺪﺳ ﻣﯿﺮﺳﯿﻢ ﮐﻪ ﺟﻮاب آن ﺿﺮﯾﺐ nاﺳﺖT (n) = Θ(n) . ▷ • ٩ .۵-٣ﺣﻞ .ﺑﺎ ﮐﺸﯿﺪن درﺧﺖ ﺑﺎزﮔﺸﺖ ﻣﯿﺘﻮان ﻧﺸﺎن داد ﮐﺎر اﻧﺠﺎم ﺷﺪه در ﻫﺮ ﻃﺒﻘﻪ ) O(nاﺳﺖ و ﭼﻮن α و βﮐﺴﺮ ﻫﺎی ﮐﻮﭼ ﺗﺮ از ١ﻫﺴﺘﻨﺪ ارﺗﻔﺎع درﺧﺖ ) O(lgnاﺳﺖ. • ٢ .۶-٣ﺣﻞ .ﺣﺪس و اﺳﺘﻘﺮا .ﺑﺮای nﻫﺎی ﻓﺮد ١٠٠و ﺑﺮای nﻫﺎی زوج ١٠٠ + ۶ × ٢ n ٢ • ٣ .۶-٣ﺣﻞ .ﺣﺪاﮐﺜﺮ ﺗﻌﺪاد ﮐﺎرت ﻫﺎﯾﯽ ﮐﻪ ﺑﺎ kﺣﺮﮐﺖ ﻣﯿﺘﻮان ﺑﺮداﺷﺖ را ﺑﺎ ﯾ ﻣ آورﯾﻢ ) ٢راﺑﻄﻪ ﺑﺎزﮔﺸﺘ ﻣﯿﻨﻮﯾﺴﯿﻢ ﯾ ﺑﺎﺷﺪ ﺣﺪاﻗﻞ k + ١ﺣﺮﮐﺖ ﻻزم دارد. ﺑﺮای ﺳﻔﯿﺪ ﻫﺎ و ﯾ ▷ ▷ راﺑﻄﻪ ی ﺑﺎزﮔﺸﺘ ﺑﺪﺳﺖ ﺳﯿﺎه ﻫﺎ( ،ﻫﺮ nﮐﻪ ﺑﯿﻦ ) f (kو )f (k + ١ ▷ ﻣﺴﺌﻠﻪی .٣اﺷﺘﺒﺎه! اﺷﺘﺒﺎه ﺗﺤﻠﯿﻞ زﯾﺮ را ﭘﯿﺪا ﮐﻨﯿﺪ: ﻣﯿﺨﻮاﻫﯿﻢ ﺛﺎﺑﺖ ﮐﻨﯿﻢ اﻟ ﻮرﯾﺘﻢ ﻣﺮﺗﺐ ﺳﺎزی ادﻏﺎﻣ از ) O(nاﺳﺖ! »روی nاﺳﺘﻘﺮا ﻣﯿﺰﻧﯿﻢ ،ﺑﺮای n = ١ﮐﻪ ﺣ ﻢ درﺳﺖ اﺳﺖ .ﻓﺮض ﮐﻨﯿﺪ ادﻋﺎی ﻣﺎ ﺑﺮای ﻫﻤﻪ ی آراﯾﻪ ﻫﺎی ﺑﺎ اﻧﺪازه ی ﮐﻤﺘﺮ از nدرﺳﺖ ﺑﺎﺷﺪ ،ﯾ آراﯾﻪ ی nﻋﻨﺼﺮی دارﯾﻢ ،ﻃﺒﻖ اﻟ ﻮرﯾﺘﻢ آراﯾﻪ ﺑﻪ دو ﻗﺴﻤﺖ n٢ﺗﺎﯾﯽ ﺗﻘﺴﯿﻢ ﻣﯿﺸﻮد، ﻫﺮ ﮐﺪام از اﯾﻦ دو ﻗﺴﻤﺖ ﻣﺮﺗﺐ ﻣﯿﺸﻮد و ﺑﻌﺪ ﺑﺎ ) O(nادﻏﺎم ﻣﯿﺸﻮد .ﻃﺒﻖ ﻓﺮض اﺳﺘﻘﺮا ﻫﺮ ﮐﺪام از دو ﻗﺴﻤﺖ در ) O( n٢ﻣﺮﺗﺐ ﻣﯿﺸﻮﻧﺪ ﭘﺲ در ﮐﻞ دارﯾﻢ O( n٢ ) + O( n٢ ) + O(n) :ﮐﻪ از ) O(nاﺳﺖ«. ﺣﻞ .وﻗﺘ ﺑﺮای ﺛﺎﺑﺖ ﮐﺮدن ﺗﺤﻠﯿﻞ زﻣﺎﻧ ﯾ اﻟ ﻮرﯾﺘﻢ اﺳﺘﻘﺮا ﻣﯿﺰﻧﯿﻢ ﺑﺎﯾﺪ ﺿﺮﯾﺐ ﺛﺎﺑﺖ cﮐﻪ در ﺗﻌﺮﯾﻒ Oآﻣﺪه را ﺑﻪ دﻗﺖ در ﻧﻈﺮ ﺑ ﯿﺮﯾﻢ .در اﯾﻦ ﻣﺜﺎل اﮔﺮ ﻓﺮض ﮐﻨﯿﻢ اﯾﻦ ﺿﺮﯾﺐ cاﺳﺖ ،ﯾﻌﻨ ﺑﺮای ﻗﺴﻤﺖ ﻫﺎی n٢ﺗﺎﯾﯽ زﻣﺎن اﺟﺮا ﮐﻤﺘﺮ ﻣﺴﺎوی c n٢اﺳﺖ ،ﺑﺮای nﺧﻮاﻫﯿﻢ داﺷﺖ c n٢ + c n٢ + O(n) = cn + O(n) :ﮐﻪ ﺑﺰرﮔﺘﺮ از cnاﺳﺖ .ﭘﺲ ▷ اﯾﻦ اﺛﺒﺎت ﻧﻤ ﺗﻮاﻧﺪ درﺳﺖ ﺑﺎﺷﺪ. ﻣﺴﺌﻠﻪی .۴ﺷﻤﺎرﻧﺪه ی ﭘﺮﻫﺰﯾﻨﻪ ﯾ ﺷﻤﺎرﻧﺪه دودوﯾﯽ nﺑﯿﺘ در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ ﮐﻪ در آن ﻫﺰﯾﻨﻪ ی ﻋﻮض ﮐﺮدن ﺑﯿﺖ iام i ،ﺑﺎﺷﺪ ،ﺑﻪ ﻃﻮر ﻣﺜﺎل اﮔﺮ ﺷﻤﺎرﻧﺪه ١٠٠١١١ﺑﺎﺷﺪ ﻫﺰﯾﻨﻪ ی اﻓﺰاﯾﺶ آن ﺑﻪ ) ١٠١٠٠٠ﯾﻌﻨ ﻋﺪد ﺑﻌﺪی( ١+٢+٣+۴=١٠اﺳﺖ. اﻟﻒ( ﺛﺎﺑﺖ ﮐﻨﯿﺪ ﻫﺰﯾﻨﻪ ی ﺳﺮﺷ ﻦ ﻫﺮ اﻓﺰاﯾﺶ از ) O(١ﺧﻮاﻫﺪ ﺑﻮد. ﺣﻞ .ﺑﻪ ازای ﻫﺮ اﻓﺰاﯾﺶ ۴ﺗﻮﻣﻦ در ﺻﻨﺪوق ﻣﯿ ﺬارﯾﻢ ،اﮔﺮ ﺗﺎ ﻋﺪد nﭘﯿﺶ رﻓﺘﻪ ﺑﺎﺷﯿﻢ ﺑﯿﺖ اول nﺑﺎر ،ﺑﯿﺖ دوم n٢ﺑﺎر و ...ﺑﺎﯾﺪ ﺛﺎﺑﺖ ﮐﻨﯿﻢ در ﻫﺮ ﻟﺤﻈﻪ ﻫﺰﯾﻨﻪ ی اﻓﺰاﺑﺶ ﺑﻌﺪی در ﺻﻨﺪوق ﻫﺴﺖ ،ﯾﻌﻨ : ▷ n + ٢ n٢ + ٣ ٢n٢ + ... ⩽ ۴n ٢ ب( ﻓﺮض ﮐﻨﯿﺪ ﻫﺰﯾﻨﻪ ی ﻋﻮض ﮐﺮدن ﺑﯿﺖ iام ﺑﻪ ﺟﺎی ٢i ،iﺑﺎﺷﺪ .آﯾﺎ ﻫﻨﻮز ﻫﻢ ﻫﺰﯾﻨﻪ ی ﺳﺮﺷ ﻦ ﻫﺮ اﻓﺰاﯾﺶ از ) O(١اﺳﺖ؟ اﮔﺮ ﻧﻪ ﻫﺰﯾﻨﻪ ی ﺳﺮﺷ ﻦ آن را ﺣﺴﺎب ﮐﻨﯿﺪ. ﺣﻞ .ﻫﺰﯾﻨﻪ ) O(١ﻧﯿﺴﺖ O(lgn) ،اﺳﺖ )اﮔﺮ ﺷﻤﺎرﻧﺪه ﺗﺎ ﻋﺪد nﮐﻪ ﺗﻮاﻧ از ٢اﺳﺖ ﺑﺮود ،ﺑﺮای ﺑﻘﯿﻪ ﺣﺎﻟﺖ ﻫﺎ ﻫﻢ اﺛﺒﺎت ﺷﺒﯿﻪ اﺳﺖ( .ﻣﺠﻤﻮع ﻫﺰﯾﻨﻪ ﺧﻮاﻫﺪ ﺑﻮد: n ٢n ٢n + ٢ ٢ + ٢٣ ٢n٢ + ... + ٢lgn+١ ٢lgn )= ٢n(lgn + ١ ▷ ﭘﺲ ﭼﻮن nﺑﺎر اﻓﺰاﯾﺶ دادﯾﻢ ﺑﻪ ﺻﻮرت ﺳﺮﺷ ﻦ ﻫﺰﯾﻨﻪ ) O(lgnﺧﻮاﻫﺪ ﺑﻮد. ﻣﺴﺌﻠﻪی .۵ﺟﺎﯾ ﺸﺖ ﺗﻤﺎم ﺟﺎﯾ ﺸﺖ ﻫﺎی اﻋﺪاد ١ﺗﺎ nرا در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ و آﻧﻬﺎ را ﻣﺎﻧﻨﺪ ﻓﺮﻫﻨﮓ ﻟﻐﺖ ﻣﺮﺗﺐ ﮐﻨﯿﺪ. ﻣﺜﻼ ﺑﺮای n = ٣دارﯾﻢ: >3 >2 >3 >1 >2 >1 2, 3, 1, 3, 1, 2, <1, <1, <2, <2, <3, <3, ﻓﺮض ﮐﻨﯿﺪ ﯾ از اﯾﻦ ﺟﺎﯾ ﺸﺖ ﻫﺎ را دارﯾﻢ و از روی آن ﻣﯿﺨﻮاﻫﯿﻢ ﺟﺎﯾ ﺸﺖ ﺑﻌﺪی را ﺑﺴﺎزﯾﻢ .ﺑﻪ ﻃﻮر ﻣﺜﺎل ﺑﺮای ﺳﺎﺧﺘﻦ ﺟﺎﯾ ﺸﺖ ﭼﻬﺎرم از روی ﺟﺎﯾ ﺸﺖ ﺳﻮم ،ﻋﻨﺼﺮ دوم و ﺳﻮم را ﻋﻮض ﻣﯿ ﻨﯿﻢ. ﻣﯿﺨﻮاﻫﯿﻢ از ﺟﺎﯾ ﺸﺖ اول ﺷﺮوع ﮐﻨﯿﻢ و ﯾ ﯾ ﺟﺎﯾ ﺸﺖ ﻫﺎی ﺑﻌﺪی را ﺗﻮﻟﯿﺪ ﮐﻨﯿﻢ .ﺛﺎﺑﺖ ﮐﻨﯿﺪ ﻫﺰﯾﻨﻪ ی ﺳﺮﺷ ﻦ رﺳﯿﺪن از ﯾ ﺟﺎﯾ ﺸﺖ ﺑﻪ ﺟﺎﯾ ﺸﺖ ﺑﻌﺪی آن از ) O(١اﺳﺖ. ﺑﺎر ﻋﻮض ﻣﯿﺸﻮد ،ﻋﺪد اول ﻫﺮ !١ﯾ ﺣﻞ .ﻋﺪد ﺻﻔﺮم از ﺳﻤﺖ راﺳﺖ ﻫﺮ !٠ﯾ )ﭼﺮا؟( ﭘﺲ ﻣﺠﻤﻮع ﻫﺰﯾﻨﻪ ﻫﺎ ﺧﻮاﻫﺪ ﺑﻮد: !n !n !n !n !)+ ١! + ٢! + ... + (n−١ )!= n!Σ i!١ < n!Σ ٢١i = ٢(n !٠ ﭘﺲ ﻫﺰﯾﻨﻪ ی ﺳﺮﺷ ﻦ ﺳﺎﺧﺘﻦ ﺟﺎﯾ ﺸﺖ ﺑﻌﺪی ) O(١ﺧﻮاﻫﺪ ﺑﻮد. ﺑﺎر ،ﻋﺪد دوم ﻫﺮ !٢ﯾ ﺑﺎر ▷ ﻣﺴﺌﻠﻪی .۶آراﯾﻪ ی ﭘﻮﯾﺎ ﻣ ﺧﻮاﻫﯿﻢ ﯾ آراﯾﻪ ی ﭘﻮﯾﺎ )آراﯾﻪ ای ﺑﺎ ﻗﺎﺑﻠﯿﺖ ﺗﻐﯿﯿﺮ اﻧﺪازه( ﺑﺎ اﺳﺘﻔﺎده از آراﯾﻪ ﻫﺎی ﻋﺎدی ﭘﯿﺎده ﺳﺎزی ﮐﻨﯿﻢ. ﺑﺮای اﯾﻦ ﮐﺎر اﺑﺘﺪا ﯾ آراﯾﻪ ﺑﺎ اﻧﺪازه ی ١در ﻧﻈﺮ ﻣﯿ ﯿﺮﯾﻢ ﮐﻪ ﭼﯿﺰی در آن ﻧﯿﺴﺖ .ﺑﻌﺪ ﺑﺮای ﻫﺮ ﻋﻤﻠﯿﺎت درج اﮔﺮ آراﯾﻪ ی ﻓﻌﻠ ﺟﺎ داﺷﺖ ﻋﻨﺼﺮ ﺟﺪﯾﺪ را ﺑﻪ اﻧﺘﻬﺎی آن اﺿﺎﻓﻪ ﻣﯿ ﻨﯿﻢ و اﮔﺮ ﻧﺪاﺷﺖ ﯾ آرا ﯾﻪ ی ﺟﺪﯾﺪ ﺑﺎ اﻧﺪازه ی ٢ﺑﺮاﺑﺮ آراﯾﻪ ی ﻗﺒﻠ ﻣﯿﺴﺎزﯾﻢ ،ﺗﻤﺎم ﻋﻨﺎﺻﺮ آراﯾﻪ ی ﻗﺒﻠ را ﺑﻪ اﯾﻦ آراﯾﻪ ﻣﻨﺘﻘﻞ ﻣﯿ ﻨﯿﻢ و ﻋﻨﺼﺮ ﺟﺪﯾﺪ را ﺑﻪ اﻧﺘﻬﺎی آن اﺿﺎﻓﻪ ﻣﯿ ﻨﯿﻢ. ﻫﺰﯾﻨﻪ ی اﻧﺘﻘﺎل nﻋﻨﺼﺮ از آراﯾﻪ ای ﺑﻪ آراﯾﻪ ی دﯾ ﺮ ) O(nاﺳﺖ(. اﻟﻒ( ﻓﺮض ﮐﻨﯿﺪ ﺑﺮای ﻋﻤﻠﯿﺎت ﺣﺬف ،ﻋﻨﺼﺮ آﺧﺮ را از آراﯾﻪ ی ﻓﻌﻠ ﺣﺬف ﻣﯿ ﻨﯿﻢ و ﺑﻌﺪ اﮔﺮ ﺗﻌﺪاد ﻋﻨﺎﺻﺮ ﺑﺎﻗﯿﻤﺎﻧﺪه ﮐﻤﺘﺮ ﻣﺴﺎوی ﻧﺼﻒ اﻧﺪازه ی آراﯾﻪ ی ﻓﻌﻠ ﺑﻮد ﯾ آراﯾﻪ ﺑﺎ اﻧﺪازه ی ﻧﺼﻒ آراﯾﻪ ی ﻓﻌﻠ ﻣﯿﺴﺎزﯾﻢ و ﻫﻤﻪ ی ﻋﻨﺎﺻﺮ ﺑﺎﻗﯿﻤﺎﻧﺪه را ﺑﻪ آن ﻣﻨﺘﻘﻞ ﻣﯿ ﻨﯿﻢ. ﻧﺸﺎن دﻫﯿﺪ ﻫﺰﯾﻨﻪ ی ﺳﺮﺷ ﻦ اﻋﻤﺎل ) O(١ﻧﺨﻮاﻫﺪ ﺑﻮد. )راﻫﻨﻤﺎﯾﯽ :دﻧﺒﺎﻟﻪ ای از اﻋﻤﺎل درج و ﺣﺬف ﭘﯿﺪا ﮐﻨﯿﺪ ﮐﻪ ﻫﺰﯾﻨﻪ ی ﺳﺮﺷ ﻦ آن ﺑﯿﺸﺘﺮ ﺑﺎﺷﺪ(. ٣ ﺣﻞ .اﮔﺮ ﻣﺜﻼ ٢kﻋﻨﺼﺮ در آراﯾﻪ درج ﮐﻨﯿﻢ و ﺑﻌﺪ nﺑﺎر اﯾﻦ ﮐﺎر را اﻧﺠﺎم دﻫﯿﻢ :ﯾ ﻋﻨﺼﺮ را ﺣﺬف ﮐﻨﯿﻢ و دوﺑﺎره ﯾ درج ﮐﻨﯿﻢ ،ﻫﺮدﻓﻌﻪ ﺑﺎﯾﺪ ﮐﻞ آراﯾﻪ ی ﻗﺒﻠ ﻣﻨﺘﻘﻞ ﺷﻮد ،و اﮔﺮ ٢kﻧﺴﺒﺖ ﺑﻪ nﺑﺰرگ ﺑﺎﺷﺪ ﻫﺰﯾﻨﻪ ی ▷ ﻫﺮ ﻋﻤﻞ ) O(١ﻧﺨﻮاﻫﺪ ﺑﻮد ب( ﺣﺎﻻ ﻓﺮض ﮐﻨﯿﺪ ﺑﻪ ﺟﺎی اﯾﻨﮑﻪ وﻗﺘ ﺗﻌﺪاد ﻋﻨﺎﺻﺮ ﺑﺎﻗﯿﻤﺎﻧﺪه ﺑﻪ ﻧﺼﻒ اﻧﺪازه رﺳﯿﺪ آراﯾﻪ را ﻧﺼﻒ ﮐﻨﯿﻢ ،وﻗﺘ اﯾﻦ ﺗﻌﺪاد ﺑﻪ ١۴رﺳﯿﺪ اﯾﻦ ﮐﺎر را اﻧﺠﺎم دﻫﯿﻢ. ﻧﺸﺎن دﻫﯿﺪ در اﯾﻦ ﺻﻮرت ﻫﺰﯾﻨﻪ ی ﺳﺮﺷ ﻦ ﺑﺮای ﻫﺮ دﻧﺒﺎﻟﻪ از اﻋﻤﺎل درج و ﺣﺬف ) O(١ﺧﻮاﻫﺪ ﺑﻮد. ﺣﻞ .اﮔﺮ ﺑﻪ ازای ﻫﺮ درج ﮐﻪ ﺑﺎﻋﺚ ﺗﻐﯿﯿﺮ اﻧﺪازه ی آراﯾﻪ ﻧﻤﯿﺸﻮد ٢ﺗﻮﻣﺎن در ﺻﻨﺪوق ﺑ ﺬارﯾﻢ،و ﺑﻪ ازای ﻫﺮ ﺣﺬف ﮐﻪ ﺑﺎﻋﺚ ﺗﻐﯿﯿﺮ اﻧﺪازه ی آراﯾﻪ ﻧﻤﯿﺸﻮد ١ﺗﻮﻣﺎن در ﺻﻨﺪوق ﺑ ﺬارﯾﻢ ،ﺑﺎ ﻧﺸﺎن دادن اﯾﻨﮑﻪ ﻣﻮﻗﻊ دو ﺑﺮاﺑﺮ ﺷﺪن آراﯾﻪ ،ﻧﺼﻒ ﻋﻨﺎﺻﺮ ﻫﺴﺘﻨﺪ ﮐﻪ ﭘﻮﻟ ﮐﻪ ﺑﻪ ازای آﻧﻬﺎ در زﻣﺎن درج در ﺻﻨﺪوق ﮔﺬاﺷﺘﯿﻢ ﻫﻨﻮز ﻫﺴﺖ و ﺑﻪ ﻃﻮر ﻣﺸﺎﺑﻪ ﺑﺮای ﺣﺬف ،ﺛﺎﺑﺖ ﻣ ﺷﻮد ﺑﺮای ﻫﺮ دﻓﻌﻪ ﺗﻐﯿﯿﺮ اﻧﺪازه ی آراﯾﻪ ﺑﻪ اﻧﺪازه ی ﮐﺎﻓ در ﺻﻨﺪوق ﺧﻮاﻫﯿﻢ ▷ داﺷﺖ. ﻣﺴﺌﻠﻪی .٧ﺗﮏ ﻧﻤﺎ ﺑﻪ آراﯾﻪ ] A[١, ..., nﺗﮏ ﻧﻤﺎ ﻣﯿ ﻮﯾﯿﻢ اﮔﺮ اﻧﺪﯾﺲ xدر آن وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﺑﻪ ﻃﻮرﯾ ﻪ: ] A[i] < A[i + ١ﺑﺮای ١ ⩽ i ⩽ xو ] A[i] > A[i + ١ﺑﺮای x ⩽ i < n ﯾﻌﻨ ] A[xﻋﻨﺼﺮ ﺑﯿﺸﯿﻨﻪ ی آراﯾﻪ اﺳﺖ .اﻟ ﻮرﯾﺘﻤ از ) O(lgnاراﺋﻪ دﻫﯿﺪ ﮐﻪ اﯾﻦ ﻋﻨﺼﺮ را در ﯾ ﮐﻨﺪ. ﺣﻞ .ﺑﺎ اﻟ ﻮرﯾﺘﻤ ﺷﺒﯿﻪ ﺟﺴﺘﺠﻮی دودوﯾﯽ ﻣﯿﺘﻮاﻧﯿﻢ اﯾﻦ ﻋﻨﺼﺮ را ﭘﯿﺪا ﮐﻨﯿﻢ ۴ آراﯾﻪ ﺗﮏ ﻧﻤﺎ ﭘﯿﺪا ▷
© Copyright 2025 Paperzz