### integerPartition ```mermaid graph TD A[开始] --> B{n == 0?}; B -- 是 --> C[返回 1]; B -- 否 --> D{n < 0 或 m <= 0?}; D -- 是 --> E[返回 0]; D -- 否 --> F["integerPartition(n, m - 1)"]; D -- 否 --> G["integerPartition(n - m, m)"]; F --> H[+] --> I[返回 结果]; G --> H; C --> I; E --> I; ``` ### Hanoi ```mermaid graph TD A[开始] --> B{n == 1?}; B -- 是 --> C["输出: 移动盘子 n 从 from 到 to"]; C --> D[返回]; B -- 否 --> E["hanoi(n - 1, from, mid, to)"]; E --> F["输出: 移动盘子 n 从 from 到 to"]; F --> G["hanoi(n - 1, mid, to, from)"]; G --> D; ``` ### mergeSort ```mermaid graph TD D{数组长度 <= 1?}; D -- 是 --> E[返回 数组]; D -- 否 --> F["分割数组为 左半部分 和 右半部分"]; F --> G["左半部分 = mergeSort(左半部分)"]; F --> H["右半部分 = mergeSort(右半部分)"]; G --> I["合并 有序的 左半部分 和 右半部分"]; H --> I; I --> E; ``` ### quickSort ```mermaid graph TD D{low < high?}; D -- 否 --> E[返回]; D -- 是 --> F["选择基准元素"]; F --> G["分区操作: 将小于基准的放左边, 大于基准的放右边"]; G --> H["获取基准元素最终索引 idx"]; H --> I["quickSort(数组, low, idx - 1)"]; H --> J["quickSort(数组, idx + 1, high)"]; I --> E; J --> E; ```