使用双层循环,由后往前。

每轮固定最右边的值,接着俩俩比较大小,将大的放右边。

如果阵列长度是 4,要比对 3+2+1 总共 6 次。

如果阵列长度是 7,要比对 6+5+…+1 总共 21 次。

可以加入一个 flag 来做判定,假设比较完第一轮发现没有交换的情况发生,则代表已经排序完成,不需要再跑下一轮,即可稍微优化排序。

从第二笔开始,每轮将该笔资料往前比较大小,将大的放右边:每轮比较从 (i - 1) ~ 0。

假设当前比对的值与第一个要比较的值一比较,恰好正确,则代表前面皆已经排序完成,可以进到下一轮。

O(N²):(读作 big-O N平方) 是相当可怕的,排序的执行时间将会是资料量的平方倍数成长。