我正在学习泡泡排序。而且我倾向于忘记每次的排序类型。所以我试图找到每种类型的逻辑含义,以便它有助于回忆排序逻辑:
我无法理解为什么冒泡排序被命名为冒泡排序?
答案 0 :(得分:7)
冒泡排序得名,因为元素往往会向上移动到正确的顺序,就像气泡上升到表面一样。
答案 1 :(得分:2)
引自Wikipedia:
冒泡排序,有时也称为沉没排序,是一种简单的排序算法,可以反复遍历要排序的列表,比较每对相邻的项目和交换他们如果他们的顺序错了。重复传递列表,直到不需要交换,这表明列表已排序。该算法是一种比较排序,以较小元素“冒泡”到列表顶部的方式命名。
答案 2 :(得分:1)
它被称为冒泡排序,因为在算法的一次迭代中,最小/最大元素将导致其在数组的结尾/开始处的最终位置。
因此,在某种意义上,在气泡排序算法的一次迭代中,数组中元素的运动类似于在水中升起的气泡的运动
答案 3 :(得分:0)
正如其他答案已经指出的那样,“气泡排序”的命名方式是因为元素将缓慢移动到列表的所需末端,类似于气泡向表面移动的方式。
答案 4 :(得分:0)
由于每次迭代,通过比较和交换,一个元素会冒泡直至未排序的子序列的最后一个
# {...}
def add_person(cls):
return cls.number_of_people + 1
P1 = Person("Rups")
print(P1.add_person()) # prints 1 (number_of_people which is 0, then add 1)
print(P1.add_person()) # still prints 1