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

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

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

相关推荐

07-04 16:00
门头沟学院 Java
点赞 评论 收藏
分享
qq乃乃好喝到咩噗茶:院校后面加上211标签,放大加粗,招呼语也写上211
点赞 评论 收藏
分享
06-17 21:57
门头沟学院 Java
白友:噗嗤,我发现有些人事就爱发这些,明明已读不回就行了,就是要恶心人
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务