地精,这个名字我也很意外,好吧,可能是翻译的问题吧,我们不要过多纠结
和冒泡比较像,数字往前冒,一旦遇到比小的,则互换位置,往回冒,然后继续往前冒
举个例子
10, 12, 7, 5
先取10,这时候下标为0,不比较,下标0=》1
取12,12跟10比,12比10大,保持原型,下标1=》2
取7,7和前面的数12比,7比12小,互换位置,得到[10, 7, 12, 5],下标2=》1
取7,7和前面的数10比,7比10小,互换位置,得到[7, 10, 12, 5],下标1=》0
取7,这时候下标是0,不比较,下标0=》1
取10,10跟7比,10比7大,保持原型,下标1=》2
取12,12跟10比,12比10大,保持原型,下标2=》3
取5,5和12比,5比12小,互换位置,得到[7, 10, 5, 12],下标3=》2
取5,5和10比,5比10小,互换位置,得到[7, 5, 10, 12],下标2=》1
取5,5和7比,5比7小,互换位置,得到[5, 7, 10, 12],下标1=》0
取5,下标是0,不比较,下标0=》1
取7,7比5大,保持原型,下标1=》2
取10,10比7大,保持原型,下标2=》3
取12,,12比10大,保持原型,下标+1变为4,因为4和数组的长度一样,循环结束
最终结果是[5, 7, 10, 12]
代码实现