python用for循环实现冒泡排序
下面实现用for循环实现冒泡排序(升序)
arr=[5,9,34,3,24,12,23,2]
for i in range(1,len(arr)):
for j in range(0,len(arr)-i):
if arr[j]>arr[j+1]:
arr[j],arr[j+1]=arr[j+1],arr[j]
print arr
以升序为例,冒泡排序的原理就是依次比较相邻的两个数,每次循环后把最大的数交换到最右边
arr=[5,9,34,3,24,12,23,2]
print '未排序前元组:',arr
for i in range(1,len(arr)):
for j in range(0,len(arr)-i):
if arr[j]>arr[j+1]:
arr[j],arr[j+1]=arr[j+1],arr[j]
print '第'+str(i)+'次排序:',arr
print '升序排序后元组:',arr
运行结果如下
未排序前元组: [5, 9, 34, 3, 24, 12, 23, 2]
第1次排序: [5, 9, 3, 24, 12, 23, 2, 34]
第2次排序: [5, 3, 9, 12, 23, 2, 24, 34]
第3次排序: [3, 5, 9, 12, 2, 23, 24, 34]
第4次排序: [3, 5, 9, 2, 12, 23, 24, 34]
第5次排序: [3, 5, 2, 9, 12, 23, 24, 34]
第6次排序: [3, 2, 5, 9, 12, 23, 24, 34]
第7次排序: [2, 3, 5, 9, 12, 23, 24, 34]
升序排序后元组: [2, 3, 5, 9, 12, 23, 24, 34]
相关文章