計(jì)算兩個(gè)正整數(shù)n和m的乘積有一個(gè)很有名的算法稱為俄式乘法,其思想是利用了一個(gè)規(guī)模是n的解和一個(gè)規(guī)模是n/2的解之間的關(guān)系:n×m=n/2×2m(當(dāng)n是偶數(shù))或:n×m=(n-1)/2×2m+m(當(dāng)n是奇數(shù)),并以1×m=m作為算法結(jié)束的條件。例如,圖5.15給出了利用俄式乘法計(jì)算50×65的例子。據(jù)說十九世紀(jì)的俄國農(nóng)夫使用該算法并因此得名,這個(gè)算法也使得乘法的硬件實(shí)現(xiàn)速度非??欤?yàn)橹皇褂靡莆痪涂梢酝瓿啥M(jìn)制數(shù)的折半和加倍。請?jiān)O(shè)計(jì)算法實(shí)現(xiàn)俄式乘法。
您可能感興趣的試卷

最新試題
?在分治法中講到快速排序,如果每次使用partion函數(shù)導(dǎo)致分組出現(xiàn)嚴(yán)重不平衡情況下,算法效率不高,最壞情況下的時(shí)間復(fù)雜度為O(n2),通過改造partition函數(shù),也就是每次隨機(jī)選擇一個(gè)元素作為劃分基準(zhǔn),這樣會(huì)很好地改善算法的性能,這種算法思想是()。
在對Dijkstra算法進(jìn)行初始化時(shí),如果兩個(gè)頂點(diǎn)之間沒有邊,則它們之間的距離為()。
在使用分治法設(shè)計(jì)算法時(shí),最好使子問題的規(guī)模大致相同,即將一個(gè)問題分成大小相等的多個(gè)子問題的處理方法是行之有效的。
回溯法采用的搜索策略是()。
回溯法的主要用途包括求問題的所有解、求問題的最優(yōu)解和求問題的任一解。