---
# System prepended metadata

title: 演算法介紹|第二週
tags: [資料結構與演算法]

---

---
title: 演算法介紹|第二週
tags: 資料結構與演算法
---

# 演算法正確性證明

## 找出(迴圈)不變性 / (loop)invariant

也就是演算法在迴圈中所保持恆定的部分
以上課的「找最小值」的例子來說，不變的性質就是
「第 k 次迴圈結束時，A~mk~ 的值一定小於等於 A~1~ 到 A~k~」

## 證明方法 - 歸納法 Induction

老朋友了，說明到了第 t 個都是正確的，證明第 t+1 個
也是正確的，最後得出上面那點的結論

寫法就是：

:::success
根據數學歸納法，這個不變性質從 i = 2 ~ k 恆定；
所以當迴圈結束在第 k 次時，某某某結論保持正確
>以上面的例子的話結論就是
>A\[mk\] ≤ A\[j\] for j = 1, 2, . . . , k

:::

