输出任意阶类似下列蛇形矩阵
1 2 1 2 3 1 2 3 4
4 3 8 9 4 12 13 14 5
7 6 5 11 16 15 6
10 9 8 7
存在一个 n 位正整数 A 可写作:
anan-1an-2...a1
经过如下位置调换得到正整数 A' 可写作:
a1anan-1an-2...a2
A 与 A' 存在如下关系:
A' = 2A
设辅助数列记为 {kn}, 假设正整数 A 的个位数为kn+1存在如下关系:
kn = 10 * kn+1%2 + int(kn+1/2)
kn-1 = 10 * kn%2 + int(kn/2)
kn-2 = 10 * kn-1%2 + int(kn-1/2)
...
则对于数列{an},有
an = int(kn+1/2)
an-1 = int(kn/2)
...
对于数列{kn}的递归中止条件为:
ki/2 = kn+1
#bubblesort.cpp
使用迭代而非循环实现冒泡排序
添加一个标识符——flag,初始化为true,当一次遍历过程中存在交换时置为false。
迭代中止条件为遍历到list尾部且flag为true,即本次遍历不存在交换,否则重置flag,并从新开始遍历。