题解 | #输入整型数组和排序标识,对其元素按照升序或降序进行排序#
输入整型数组和排序标识,对其元素按照升序或降序进行排序
http://www.nowcoder.com/practice/dd0c6b26c9e541f5b935047ff4156309
题目: HJ101 输入整型数组和排序标识,对其元素按照升序或降序进行排序
输入整型数组和排序标识,对其元素按照升序或降序进行排序
数据范围:1<=n<=1000, 元素大小满足0<=val<=100000
输入描述:
第一行输入数组元素个数
第二行输入待排序的数组,每个数用空格隔开
第三行输入一个整数0或1。0代表升序排序,1代表降序排序
输出描述: 输出排好序的数字
我的思路:
题目的本意应该考的是算法,而不是python内置函数
所以排序算法还是需要自己手撸的
而且我不明白为什么好多人都没考虑数据范围
def mysort(nlist, length, flag):
for i in range(length):
for j in range(length-i-1):
if flag==0:
if nlist[j]>nlist[j+1]:
nlist[j],nlist[j+1]=nlist[j+1],nlist[j]
if flag==1:
if nlist[j]<nlist[j+1]:
nlist[j],nlist[j+1]=nlist[j+1],nlist[j]
return nlist
length=int(input())
while (length<1)|(length>1000):
length=int(input())
data=input()
flag=int(input())
reco=0
nlist=data.split(' ')
nlist=[int(i) for i in nlist]
while (min(nlist)<0)|(max(nlist)>100000):
data=input()
reco=1
if reco==1:
nlist=data.split(' ')
nlist=[int(i) for i in nlist]
#其实还遗漏了一点,就是输入的长度和数组的长度没做比较,暂时不写了
print(*mysort(nlist, length, flag), end=' ')