"当我坐在键盘上编码一个气泡......时,他们笑了起来."
但严重的是:Bubblesort很接近,但并不完全.Bubblesort反复向一个方向移动,因此如果阵列顶端附近有一个低调值,并且比较站点始终向上"冒泡",则需要对主循环进行多次迭代才能使数据项向下冒泡与当前相反.这是最糟糕的情况,对于Bubblesort来说是灾难性的.
但是BubbleSort有一个改进,有时叫做Elevator Cocktail Sort,气泡在交替的方向上移动:一次向上,一次向下,重复.这允许单个元素在单次通过中移动长距离(或实际上,2次通过),并且通过次数与需要移动的元素的数量成比例.对于少量未分类的元素,这可以提高效率.
我相信,对于一般情况,marek答案中的第二个链接会更快.Bubble/Elevator Cocktail排序的优势在于它非常简单,几乎万无一失,而且工作量很大.