可以采用冒泡排序,每次把相邻的两个比较大小,然后把大一点儿的数据放在最后面,这样第一趟下来,最大的那个数就跑到了最后面,下一次排序就不用跟最后一个数字比较了,然后倒数第二大的数字会在倒数第二...因此可以使用两个函数,一个用于控制每一趟比较的元素个数,一个用于交换:
#!/usr/bin/python # -*- coding: UTF-8 -*- if __name__ == "__main__": N = 10 # input data print '请输入10个数字:\n' l = [] for i in range(N): l.append(int(raw_input('输入一个数字:\n'))) print for i in range(N): print l[i] print # 排列10个数字 for i in range(N - 1): min = i for j in range(i + 1,N): if l[min] > l[j]:min = j l[i],l[min] = l[min],l[i] print '排列之后:' for i in range(N): print l[i]
以上实例输出结果为:
请输入10个数字: 输入一个数字:5 输入一个数字:3 输入一个数字:23 输入一个数字:67 输入一个数字:2 输入一个数字:56 输入一个数字:45 输入一个数字:98 输入一个数字:239 输入一个数字:9 5 3 23 67 2 56 45 98 239 9 排列之后: 2 3 5 9 23 45 56 67 98 239
Atas ialah kandungan terperinci 冒泡排序有哪2种写法,用冒泡排序对10个数进行排列. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!