演算法導論 練習 2.1
阿新 • • 發佈:2019-02-16
2.1-1
插入排序,基礎問題
原陣列:31,41,59,26,41,58
第一趟:31,41,59,26,41,58
第二趟:31,41,59,26,41,58
第三趟:26,31,41,59,41,58
第四趟:26,31,41,41,59,58
第五趟:26,31,41,41,58,59
加粗是當前處理的數字
2.1-2
將書中 A[i] > key 改成 A[i] < key
2.1-3
挨個比較就行,程式碼就沒必要寫了
證明:
初始化:令陣列A為空,那顯然會返回空,證明第一輪中迴圈不變式是成立的
保持:我們證明每一輪迴圈不變式都成立,①如果 A[1..i−1] 中不存在v,那麼我們看 A[i],如果 A[i] == v,那麼返回i,迴圈不變式成立,如果 A[i] != v,那麼我們進行下一步,這裡情況又跟①處相同,既這裡迴圈不變式永遠成立
終止
2.1-4
按位加,加進位加進位加進位加進位…..,虛擬碼不寫了。。。