题解 | #输入整型数组和排序标识,对其元素按照升序或降序进行排序#

输入整型数组和排序标识,对其元素按照升序或降序进行排序

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=' ')
全部评论

相关推荐

不愿透露姓名的神秘牛友
10-12 10:48
已编辑
秋招之苟:邻居家老哥19届双2硕大厂开发offer拿遍了,前几天向他请教秋招,他给我看他当年的简历,0实习实验室项目技术栈跟开发基本不沾边😂,我跟他说这个放在现在中厂简历都过不了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务