Python 练习实例37
题目:对10个数进行排序。
程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。
程序源代码:
实例(Python 2.0+)
#!/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
叮咚
a12***59648z@qq.com
参考解析方案:
叮咚
a12***59648z@qq.com
叮咚
a12***59648z@qq.com
参考解析方案:
叮咚
a12***59648z@qq.com
dayu
923***317@qq.com
参考方法:
dayu
923***317@qq.com
莫哉啼
695***811@qq.com
参考方法:
莫哉啼
695***811@qq.com
Dr.D
hah***ath@126.com
参考方法,使用 min+remove 挑选最小数以及弹出最小数方法排序
Dr.D
hah***ath@126.com
红萝卜
101***0300@qq.com
参考方法:
红萝卜
101***0300@qq.com
newbie
309***6266@qq.com
使用选择法,从后9个比较过程中,选择一个最小的与第一个元素比较交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。
newbie
309***6266@qq.com
chengxuyuan
hdw***taoyuan@foxmail.com
输入任意个数字,并进行升序降序选择。sorted()函数中reverse参数默认为False
chengxuyuan
hdw***taoyuan@foxmail.com
tlf
694***841@qq.com
Python3.x 下测试:
tlf
694***841@qq.com
patty
pat***qq@gmail.com
Python3实例:
patty
pat***qq@gmail.com
阳光不锈
173***979@qq.com
参考方法,兼容 Python2.x 与 Python3.x:
阳光不锈
173***979@qq.com