اﻟ ﻮرﯾﺘﻢﻫﺎی ﭘﯿﺸﺮﻓﺘﻪ ﻣﻬﻠﺖ ﺗﺤﻮﯾﻞ :ﭘﻨﺞﺷﻨﺒﻪ ﺷﺐ ،ﻫﺠﺪﻫﻢ ﻣﻬﺮ ﺳﺎﻋﺖ )١١:۵٩ﺳﯿﺎﺳﺖ ﺗﺎﺧﯿﺮ :ﻫﺮ روز ٢٠در ﺻﺪ ﮐﻢ ﻣ ﺷﻮد( ﺗﻤﺮﯾﻦ اول ﭘﺎﺳﺦ ﺧﻮد را ﺗﺎﯾﭗ و ﻓﺎﯾﻞ pdfآنرا ﺑﻪ آدرس [email protected]ارﺳﺎل ﮐﻨﯿﺪ ﺳﻮال اول ١٠ -ﻧﻤﺮه ﻧﺸﺎن دﻫﯿﺪ ﭼ ﻮﻧﻪ ﻣ ﺗﻮان دادهﺳﺎﺧﺘﺎر ﺻﻒ ١را ﺑﺎ اﺳﺘﻔﺎده از دو ﭘﺸﺘﻪ ٢ﭘﯿﺎده ﺳﺎزی ﮐﻨﯿﻢ ﺑﻪ ﻃﻮری ﮐﻪ زﻣﺎن ﺳﺮﺷ ﻦ ﻋﻤﻠﯿﺎت درج و ﺣﺬف ﺛﺎﺑﺖ ﺑﺎﺷﺪ .اﺑﺘﺪا روش ﭘﯿﺎده ﺳﺎزی و ﺳﭙﺲ ﺗﺤﻠﯿﻞ ﺳﺮﺷ ﻦ آن را ﺑﻪ ازای nدرج و nﺣﺬف ﺑﻨﻮﯾﺴﯿﺪ. ﺳﻮال دوم ٢٠ -ﻧﻤﺮه ﻓﺮض ﮐﻨﯿﺪ دادهﺳﺎﺧﺘﺎر Dﺑﺮای ﻣﺠﻤﻮﻋﻪ ﻧﻘﺎط } S = {p١ , ..., pnدر ﻓﻀﺎی ﺳﻪﺑﻌﺪی وﺟﻮد دارد ،ﺑﻪﻃﻮری ﮐﻪ ﺳﺎﺧﺖ Dزﻣﺎن ) θ(n٢ ﻣ ﺑﺮد .ﻫﻤﭽﻨﯿﻦ اﯾﻦ دادهﺳﺎﺧﺘﺎر ﻣ ﺗﻮاﻧﺪ ﺑﻪ ازای ﻧﻘﻄﻪ داده ﺷﺪه qﻧﺰدﯾ ﺗﺮﯾﻦ ﻧﻘﻄﻪ ﺑﻪ آن را در Dدر زﻣﺎن ) O(log nﺑﻪ ﻋﻨﻮان ﭘﺎﺳﺦ ﺑﺮﮔﺮداﻧﺪ .ﺗﻮﺟﻪ ﮐﻨﯿﺪ ﮐﻪ ﺳﺎﺧﺘﺎر ﭘﻮﯾﺎ ﻧﻤ ﺑﺎﺷﺪ و اﻣ ﺎن درج و ﺣﺬف در آن وﺟﻮد ﻧﺪارد .ﺣﺎل ﺑﺎ ﮐﻤ Dﯾ ﺳﺎﺧﺘﺎر ﭘﻮﯾﺎ ﻃﺮاﺣ ﮐﻨﯿﺪ ﺑﻪﻃﻮری ﮐﻪ ﺑﺘﻮاﻧﺪ ﺑﻪ ﭘﺮﺳﺶ ﻧﺰدﯾ ﺗﺮﯾﻦ ﻫﻤﺴﺎﯾﻪ ﻧﻘﻄﻪ داده ﺷﺪه در زﻣﺎن ) O(log٢ nﭘﺎﺳﺦ دﻫﺪ .ﻫﻤﭽﻨﯿﻦ درج ﯾ ﻧﻘﻄﻪ در ﺳﺎﺧﺘﺎر ﺑﺎﯾﺪ ﺑﻪ ﻃﻮر ﺳﺮﺷ ﻦ زﻣﺎن ) O(nﻣﺼﺮف ﮐﻨﺪ. )راﻫﻨﻤﺎﯾﯽ ⌈log n⌉ + ١ :ﻧﺴﺨﻪ از Dﺑﺎ اﻧﺪازهﻫﺎی } ⌉ {٢٠ , ٢١ , ..., ٢⌈log nرا در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ( . ﺳﻮال ﺳﻮم ٢٠-ﻧﻤﺮه ﻫﻤﺎﻧﻄﻮر ﮐﻪ از درس دادهﺳﺎﺧﺘﺎرﻫﺎ و ﻣﺒﺎﻧ اﻟ ﻮرﯾﺘﻢﻫﺎ ﺑﻪ ﺧﺎﻃﺮ دارﯾﺪ ،دو ﭘﯿﺎده ﺳﺎزی ﻣﻌﻤﻮل ﺑﺮای ﺳﺎﺧﺘﺎر ﭘﺸﺘﻪ وﺟﻮد دارد :آراﯾﻪ و ﻟﯿﺴﺖ ﭘﯿﻮﻧﺪی .زﻣﺎن ﺑﻪ روز رﺳﺎﻧ در ﻫﺮ دوی اﯾﻦ ﭘﯿﺎده ﺳﺎزیﻫﺎ ) O(١اﺳﺖ ،اﻣﺎ از ﻧﻈﺮ ﻓﻀﺎی اﺷﻐﺎل ﺷﺪه اﺑﻦ دو روش ﻣﺸ ﻼﺗ دارﻧﺪ .در ﭘﯿﺎده ﺳﺎزی ﺑﻪ روش آراﯾﻪ زﻣﺎﻧ ﮐﻪ ﺗﻌﺪاد ﻋﻨﺎﺻﺮ ﭘﺸﺘﻪ nاز اﻧﺪازهی آراﯾﻪ ﺑﯿﺶﺗﺮ ﺷﻮد ﺑﺎﯾﺪ آراﯾﻪ را از ﻧﻮ ﺑﺴﺎزﯾﻢ .ﺑﻨﺎﺑﺮاﯾﻦ در اﯾﻦ روش ﻣﻌﻤﻮﻻ ﻓﻀﺎﯾﯽ ﺑﯿﺸﺘﺮ از ﺣﺪ ﻻزم ﻣ ﺷﻮد .در ﭘﯿﺎده ﺳﺎزی ﭘﺸﺘﻪ ﺑﻪ روش ﻟﯿﺴﺖ ﭘﯿﻮﻧﺪی ،ﺑﺮای ﻫﺮ ﻋﻨﺼﺮ ﯾ اﺷﺎره ﮔﺮ اﺿﺎﻓﻪ ﻫﻢ ﻻزم اﺳﺖ ﮐﻪ ﺑﺎﻋﺚ اﻓﺰاﯾﺶ ﻓﻀﺎ ﺑﻪ اﻧﺪازهی nﻣ ﺷﻮد .در اﯾﻦ ﺗﻤﺮﯾﻦ روﺷ را ﭘﯿﺸﻨﻬﺎد ﻣ ﮐﻨﯿﻢ ﮐﻪ ﺣﺎﻓﻈﻪی اﺿﺎﻓﻪ ﻣﻮرد ﻧﯿﺎز آن ﺑﺴﯿﺎر ﮐﻤﺘﺮ ﯾﻌﻨ ) O(log nاﺳﺖ .در اﯾﻦ روش ﯾ ﻟﯿﺴﺖ ﭘﯿﻮﻧﺪی از آراﯾﻪﻫﺎ ﺑﻪ ﺻﻮرت > < A١ , A٢ , ...ﻧﮕﻪداری ﻣ ﮐﻨﯿﻢ ﮐﻪ در آن اﻧﺪازهی آراﯾﻪی Ajدﻗﯿﻘﺎ ﺑﺮاﺑﺮ jاﺳﺖ .ﻫﻨﮕﺎم اﻓﺰودن ﻋﻨﺎﺻﺮ ﺑﻪ ﭘﺸﺘﻪ اﺑﺘﺪا A١ﭘﺮ ﻣ ﺷﻮد.ﺳﭙﺲ A٣ ، A٢و اﻟ آﺧﺮ .در اﯾﻦ داده ﺳﺎﺧﺘﺎر ،وﻗﺘ ﮐﻪ آراﯾﻪ ﺧﺎﻟ ﻣ ﺷﻮد از ﺑﯿﻦ ﻣ رود .ﺟﺰﺋﯿﺎت در ﺷﺒﻪ ﮐﺪ زﯾﺮ آﻣﺪه اﺳﺖ: √ اﻟﻒ(] ۵ﻧﻤﺮه[ -ﻧﺸﺎن دﻫﯿﺪ ﻓﻀﺎی ﻻزم ﺑﺮای اﯾﻦ داده ﺳﺎﺧﺘﺎر ﺣﺪاﮐﺜﺮ ) n + O( nﻣ ﺑﺎﺷﺪ ،ﮐﻪ nﺗﻌﺪاد اﻋﻀﺎی ﺟﺎری ﭘﺸﺘﻪ را ﻧﺸﺎن ﻣ دﻫﺪ) .راﻫﻨﻤﺎﯾﯽ( ١ + ٢ + ... + k = Θ(k٢ ) : ب(] ۵ﻧﻤﺮه[ -در ﺑﺪﺗﺮﯾﻦ ﺣﺎﻟﺖ ﻫﺰﯾﻨﻪ pushو popﭼﻘﺪر ﻣ ﺑﺎﺷﺪ؟ ﻓﺮض ﮐﻨﯿﺪ ﻫﺰﯾﻨﻪ ﺳﺎﺧﺖ و از ﺑﯿﻦ ﺑﺮدن ﯾ آراﯾﻪ ﺑﺎ اﻧﺪازه jاز ) O(jﻣ ﺑﺎﺷﺪ. ١ queue ٢ stack ١ ج(] ١٠ﻧﻤﺮه[ -ﺛﺎﺑﺖ ﮐﻨﯿﺪ ﻫﺰﯾﻨﻪ ﺳﺮﺷ ﻦ pushو popاز ) O(١ﻣ ﺑﺎﺷﺪ .ﺑﺮای اﯾﻦ ﮐﺎر از ﺗﺎﺑﻊ ﭘﺘﺎﻧﺴﯿﻞ زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ ﮐﻪ در آن iﺑﯿﺎﻧﮕﺮ ﻣ ﺎن iام از آراﯾﻪ ﻣﻮرد ﺑﺮرﺳ اﺳﺖ: ﺳﻮال ﭼﻬﺎرم ١۵ -ﻧﻤﺮه ﻓﺮض ﮐﻨﯿﺪ آراﯾﻪ wﮐﻪ ﺷﺎﻣﻞ nﻋﺪد ﻃﺒﯿﻌ ﻣ ﺑﺎﺷﺪ دارﯾﻢ .ﺗﻌﺮﯾﻒ ﻣ ﮐﻨﯿﻢ: ]idx[i] = max(j) : ١ ≤ j < i and w[j] < w[i ﺣﺎل ﺑﺮای ﭘﯿﺪا ﮐﺮدن ﻣﻘﺪار idxاﻟ ﻮرﯾﺘﻢ زﯾﺮ را اﺟﺮا ﻣ ﮐﻨﯿﻢ: idx[١] = −١ for i : ٢ → n do j =i−١ while w[j] > w[i] and j ̸= −١ do ]j = idx[j end idx[i] = j end اﻟﻒ(] ۵ﻧﻤﺮه[ -ﻧﺸﺎن دﻫﯿﺪ اﻟ ﻮرﯾﺘﻢ ﭘﺎﺳﺦ ﺻﺤﯿﺢ را ﺗﻮﻟﯿﺪ ﺧﻮاﻫﺪ ﮐﺮد. ب(] ١٠ﻧﻤﺮه[ -ﻧﺸﺎن دﻫﯿﺪ ﻫﺰﯾﻨﻪ ﺳﺮﺷ ﻦ ﺑﺮای ﻣﺤﺎﺳﺒﻪ idxﺑﺮای ﻫﺮ اﻧﺪﯾﺲ ) O(١اﺳﺖ. ج(] ١٠ﻧﻤﺮه اﺿﺎﻓﻪ[ -ﺣﺎل ﺳﻌ ﮐﻨﯿﺪ ﺑﺎ اﺳﺘﻔﺎده از ﻧﺘﯿﺠﻪ ﻗﺴﻤﺖ ﻗﺒﻞ اﯾﻦ ﻣﺴﺎﻟﻪ را در زﻣﺎن ) O(mnﺣﻞ ﻧﻤﺎﯾﯿﺪ :ﻣﺎﺗﺮﯾﺲ m ∗ n ﺑﺎ دراﯾﻪ ﻫﺎی ﺻﻔﺮ و ﯾ داده ﺷﺪه اﺳﺖ .ﻣ ﺧﻮاﻫﯿﻢ زﯾﺮﻣﺴﺘﻄﯿﻞ ﺑﺎ ﺑﯿﺸﺘﺮﯾﻦ ﻣﺴﺎﺣﺖ را در ﻣﺎﺗﺮﯾﺲ ﭘﯿﺪا ﮐﻨﯿﻢ ﺑﻪ ﻃﻮری ﮐﻪ ﻫﻤﻪ دراﯾﻪ ﻫﺎی آن ﺑﺮاﺑﺮ ﺑﺎ ﯾ ﺑﺎﺷﺪ. ﺳﻮال ﭘﻨﺠﻢ ٢٠-ﻧﻤﺮه ﻓﺮض ﮐﻨﯿﺪ ﻣ ﺗﻮاﻧﯿﻢ ﻋﻤﻞ درج ﯾﺎ ﺣﺬف ﯾ ﻋﻨﺼﺮ را در ﯾ ﺟﺪول درﻫﻢﺳﺎزی ٣در زﻣﺎن ﺛﺎﺑﺖ اﻧﺠﺎم دﻫﯿﻢ .ﺑﺮای اﯾﻨﮑﻪ ﻣﻄﻤﺌﻦ ﺑﺎﺷﯿﻢ ﺟﺪول درﻫﻢﺳﺎزی ﻫﻤﻮاره ﺑﺪون از دﺳﺖ دادن ﻣﯿﺰان زﯾﺎدی از ﺣﺎﻓﻈﻪ ،ﺑﻪ اﻧﺪازه ﮐﺎﻓ ﺑﺰرگ اﺳﺖ از ﻗﻮاﻧﯿﻦ زﯾﺮ ﺑﺮای ﺳﺎﺧﺖ ﻣﺠﺪد اﺳﺘﻔﺎده ﻣ ﮐﻨﯿﻢ: • ﺑﻌﺪ از ﯾ ﻋﻤﻞ درج ،اﮔﺮ ﺑﯿﺶ از ۴٣ﺟﺪول ﭘﺮ اﺳﺖ ،ﯾ ﺟﺪول ﺟﺪﯾﺪ ﺑﺎ دو ﺑﺮاﺑﺮ اﻧﺪازه ﺟﺪول ﻓﻌﻠ اﯾﺠﺎد ﻣ ﮐﻨﯿﻢ ،ﺗﻤﺎم اﻃﻼﻋﺎت را از ﺟﺪول ﻓﻌﻠ وارد ﺟﺪول ﺟﺪﯾﺪ ﻣ ﮐﻨﯿﻢ و ﺟﺪول ﻗﺒﻠ را از ﺑﯿﻦ ﻣ ﺑﺮﯾﻢ. • ﺑﻌﺪ از ﯾ ﻋﻤﻞ ﺣﺬف ،اﮔﺮ ﺟﺪول ﮐﻤﺘﺮ از ۴١ﻋﻨﺼﺮ داش ،ﯾ ﺟﺪول ﺟﺪﯾﺪ ﺑﺎ ﻧﺼﻒ اﻧﺪازه ﺟﺪول ﻓﻌﻠ اﯾﺠﺎد ﻣ ﮐﻨﯿﻢ ،ﺗﻤﺎم اﻃﻼﻋﺎت را از ﺟﺪول ﻓﻌﻠ وارد ﺟﺪول ﺟﺪﯾﺪ ﻣ ﮐﻨﯿﻢ و ﺟﺪول ﻗﺒﻠ را از ﺑﯿﻦ ﻣ ﺑﺮﯾﻢ. ﻧﺸﺎن دﻫﯿﺪ ﺑﺮای ﻫﺮ ﺗﺮﺗﯿﺐ از درجﻫﺎ و ﺣﺬفﻫﺎ ﻫﺰﯾﻨﻪ ﺳﺮﺷ ﻦ ﺷﺪه ﺑﺮای ﻫﺮ ﻋﻤﻞ ﻫﻢﭼﻨﺎن ﺛﺎﺑﺖ اﺳﺖ. )راﻫﻨﻤﺎﯾﯽ :از روش ﭘﺘﺎﻧﺴﯿﻞ اﺳﺘﻔﺎده ﻧﮑﻨﯿﺪ ﭼﺮاﮐﻪ ﻣﺴﺌﻠﻪ را ﺑﺴﯿﺎر ﺳﺨﺖ ﻣ ﮐﻨﺪ(. ﺳﻮال ﺷﺸﻢ ١۵-ﻧﻤﺮه ﻓﺮض ﮐﻨﯿﺪ ﺑﻪ ﺟﺎی ﻧﻤﺎﯾﺶ اﻋﺪاد ﺻﺤﯿﺢ ﺑﺎ اﺳﺘﻔﺎده از ﺗﻮانﻫﺎی دو ،اﯾﻦ اﻋﺪاد را ﺑﺎ اﺳﺘﻔﺎده از ﺟﻤﻊ اﻋﺪاد ﻓﯿﺒﻮﻧﺎﺗﭽ ۴ﻧﻤﺎﯾﺶ ﻣ دﻫﯿﻢ .ﺑﻪ ﺑﯿﺎن دﯾ ﺮ ،ﺑﻪﺟﺎی اﺳﺘﻔﺎده از ﯾ آراﯾﻪ از ﺑﯿﺖﻫﺎ ،ﯾ آراﯾﻪ از ﺗﻄﺒﯿﻖﻫﺎ را ﻧﮕﺎه ﻣ دارﯾﻢ ﺑﻪﻃﻮریﮐﻪ iاﻣﯿﻦ ﺑﯿﺖ ﺑﺎ ﻣﻌﻨ ﻧﺸﺎندﻫﻨﺪه اﯾﻦ اﺳﺖ ﮐﻪ آﯾﺎ در ﺟﻤﻊ ،ﻋﺪد iام ﻓﯿﺒﻮﻧﺎﺗﭽ وﺟﻮد دارد ﯾﺎ ﻧﻪ .ﺑﺮای ﻣﺜﺎل ﯾ رﺷﺘﻪ ﺗﻄﺒﯿﻖ ١٠١١١٠ﻧﺸﺎندﻫﻨﺪهی ﻋﺪد table ٣ hash ۴ Fibonacci ٢ F۶ + F۴ + F٣ + F٢ = ٨ + ٣ + ٢ + ١ = ١۴اﺳﺖ .اﻟ ﻮرﯾﺘﻤ را ﺷﺮح دﻫﯿﺪ ﮐﻪ ﻋﻤﻠﯿﺎتﻫﺎی درج و ﺣﺬف را ﺑﺮای ﯾ ﺗﻄﺒﯿﻖ در زﻣﺎن ﺳﺮﺷ ﻦ ﺷﺪهی ﺛﺎﺑﺖ اﻧﺠﺎم دﻫﺪ. )ﺗﺬﮐﺮ :اﻏﻠﺐ اﻋﺪاد را ﻣ ﺗﻮان ﺑﺎ ﺑﯿﺶ از ﯾ رﺷﺘﻪ ﺗﻄﺒﯿﻖ ﻧﻤﺎﯾﺶ داد(. ٣ ﻋﺪد
© Copyright 2025 Paperzz