前面我们详细的讲解了地精排序算法,现在我们使用python代码来实现
#!/usr/bin/python
# -*- coding: utf-8 -*-
#地精排序
def gnome_sort(the_list):
i = 0
while i <len(the_list):
if i==0 or the_list[i-1] <= the_list[i]:
i+=1
else:
the_list[i - 1],the_list[i] = the_list[i],the_list[i-1]
i -=1
print the_list
return the_list
if __name__ == '__main__':
the_list = [10, 12, 7, 5]
print "排序前:" + str(the_list)
print "排序后:" + str(gnome_sort(the_list))
运行一下,看效果
排序前:[10, 12, 7, 5]
[10, 7, 12, 5]
[7, 10, 12, 5]
[7, 10, 5, 12]
[7, 5, 10, 12]
[5, 7, 10, 12]
排序后:[5, 7, 10, 12]
符合预期