在维基百科上排序算法图?

时间:2013-09-12 13:19:30

标签: algorithm sorting wikipedia

任何人都可以向我解释维基百科上的排序算法的“图形插图”是什么意思吗?我无法理解他们。

冒泡排序

Bubble Sort - Wikipedia

插入排序

Insertion Sort - Wikipedia

1 个答案:

答案 0 :(得分:4)

这些是数组中各种元素的位置(看起来灰色调表示数值)。线条显示排序过程,X轴是时间,每次移动一个或多个元素,直到右侧,您可以看到它们按音调排序。

这里的区别在于,冒泡排序会占用一个元素并开始交换相邻的元素(因此你可以看到深灰色的元素慢慢地传播到最后,直到它击中一个较暗的元素,然后你继续那个)。

另一方面,插入排序采用单个元素,决定插入的位置,并相应地移动其余元素,您可以看到由同时移动的几条平行对角线表示的。

这是一个很好的例子,但是尝试阅读算法描述 - 它并不是很复杂,也许这样的插图对你来说更有意义。

这些插图的另一个可能的好处是,它们可能会让您对数组排序所需的操作数量产生预感 - 即使它只针对一个给定的示例而不一定是最坏的情况。冒泡排序和插入排序的大小为O(n ^ 2),n是元素的数量。这意味着随着n的增长,你会看到很多动作(交换或插入)。 这就是为什么他们提出了具有更好复杂性的其他排序算法(高达O(n * logn),在一般情况下你无法击败它),参见例如快速排序;以及依赖于其他约束的算法,例如已排序的数字是从上面限定的(bin sort / radix sort)