假设我们有一个名为 A 的数组。
令 Π 是一组 (x,y) 对,其中 x,y 是存在于 A 和 index(x) < index(y) 且 x>y 的数组中的值。
例如,如果我们有这个数组
3 2 9 8 3 0
那么 (3,2) 将在 Π 中。(3,0) 也将在 Π 中。
Π 中的所有对将如下
{ (3,2), (3,0), (8,0), (9,0),(9,3),(2,0),(8,3),(9,8) }
我希望我没有忘记什么
我意识到如果我们修复所有这些对,那么我们将对数组进行排序。当我说修复时,我的意思是,例如 (3,2) 使其成为 (2,3) 以及其他人
我不明白的是,冒泡排序在每个步骤中修复了多少对?我的老师告诉我 1 我不明白这个
让我们运行冒泡排序
3 2 9 8 3 0
2 3 9 8 3 0
2 3 9 8 3 0
2 3 8 9 3 0
2 3 8 3 9 0
2 3 8 3 0 9
2 3 8 3 0 9
2 3 8 3 0 9
2 3 3 8 0 9
2 3 3 0 8 9
2 3 3 0 8 9
2 3 3 0 8 9
2 3 0 3 8 9
2 3 0 3 8 9
2 0 3 3 8 9
0 2 3 3 8 9
没有一些步骤冒泡排序不能解决任何问题吗?那么,冒泡排序每一步最多只能修复1个点是正确的答案吗?