首页 > 试题广场 >

数组的partition调整补充问题

[编程题]数组的partition调整补充问题
  • 热度指数:3607 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个数组arr,其中只可能含有0、1、2三个值,请实现arr的排序
[要求]
时间复杂度为,空间复杂度为


输入描述:
第一行一个整数N。表示数组长度
接下来一行N个整数表示数组内的数


输出描述:
输出N个整数,表示排序后的结果
示例1

输入

5
2 0 1 2 0

输出

0 0 1 2 2

备注:

n = input()
#对输入的列表排序
ls = sorted(list(input().split()))
print(' '.join(ls))

发表于 2021-06-30 09:45:52 回复(0)
def main():
    n=int(input())
    l=list(map(int,input().split()))
    
    n0,n1,n2=0,0,0
    for i in range(n):
        if l[i]==0:
            n0+=1
        elif l[i]==1:
            n1+=1
        else:
            n2+=1
    for i in range(n0):
        print(0,end=" ")
    for i in range(n1):
        print(1,end=" ")
    for i in range(n2):
        print(2,end=" ")
        
if __name__=="__main__":
    main()

发表于 2021-05-27 12:33:08 回复(0)

问题信息

上传者:小小
难度:
2条回答 4611浏览

热门推荐

通过挑战的用户

查看代码