首页 > 试题广场 >

排序

[编程题]排序
  • 热度指数:230688 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}对于给出的 n 个整数组成的数组 \{a_1, a_2, \dots, a_n\},根据输入要求,按升序或降序排列后输出。

输入描述:
\hspace{15pt}第一行输入一个整数 n \left(1 \leqq n \leqq 10^3\right) 代表数组中的元素个数。
\hspace{15pt}第二行输入 n 个整数 a_1, a_2, \dots, a_n \left(0 \leqq a_i \leqq 10^5\right) 代表数组中的元素。
\hspace{15pt}第三行输入一个整数 op \left(0 \leqq op \leqq 1\right) 代表排序方式,其中,op=0 表示按升序,op=1 表示按降序。


输出描述:
\hspace{15pt}在一行上输出 n 个整数,代表排序后的数组。
示例1

输入

5
1 2 2 5 4
0

输出

1 2 2 4 5
示例2

输入

5
1 2 2 4 5
1

输出

5 4 2 2 1
a = int(input())
b = list(map(int,input().split()))
op = int(input())
if op==0:
    b.sort()
elif op==1:
    b.sort(reverse=True)
for i in b:
    print(i,end=' ')
发表于 2025-04-16 10:52:30 回复(0)
while True:
    try:
        x,y,z= input(),input(),input()
        ls = list(map(int,y.split()))
        if z == '0':
            print(' '.join(map(str,sorted(ls))))
        else:
            print(' '.join(map(str,sorted(ls)[::-1])))
    except:
        break

发表于 2025-04-01 14:24:08 回复(0)
a=int(input())
print(' '.join(str(i) for i in sorted(list(map(int,input().split())),reverse=True if int(input()) == 1 else False)))

发表于 2025-02-25 19:47:41 回复(0)
a = input()
s = input().split()
re = int(input())
s.sort(key=lambda x : int(x) , reverse=re)
for i in s:
    print(i,end=' ')
发表于 2024-12-19 11:48:25 回复(0)
N = input()
k = sorted(list(map(int, input().split(" "))))
i = int(input())
if i == 0:
    for i in k:
        print(i,end=" ")
elif i == 1:
    k.reverse()
    for i in k:
        print(i,end=" ")

发表于 2024-11-11 19:37:39 回复(0)
# 输入
total = int(input().strip())  # 读取数组总元素个数
unordered_array = input().split()  # 读取未排序的数组as string
order = int(input().strip())  # 读取排序方式

# 将str元素转化为int
num_list = list(map(int, unordered_array))

# 根据排序方式排列list
if order == 0:
    num_list.sort()  # 升序
else:
    num_list.sort(reverse=True)  # 降序

# 输出一个用空格分割的str
print(" ".join(map(str, num_list)))

发表于 2024-11-10 17:31:35 回复(0)
n = int(input())
ls = map(int,input().split(' '))
flag = bool(int(input()))
ls = sorted(ls,reverse=flag)
print(' '.join(map(str,ls)))
发表于 2024-09-15 01:05:21 回复(0)
input()
ls = list(map(int,input().split()))
ls.sort(reverse=int(input()))
print(' '.join(list(map(str,ls))))

发表于 2024-09-08 13:01:52 回复(0)
# 1. 接收输入,转数字
ns = input()
ls = input()
ls_list = ls.split(' ')
ls_num_list = [int(x) for x in ls_list]
t = input()
# 判断范围,可省略
if int(ns) < 1&nbs***bsp;int(ns) > 1000:
    exit()

for item in ls_list:
    if int(item) < 0&nbs***bsp;int(item) > 100000:
        exit()
# 排序
if t == '0':
    ls_num_list.sort()
elif t == '1':
    ls_num_list.sort(reverse=True)
# 输出
for i in ls_num_list:
    print(i, end=' ')

发表于 2024-05-09 08:25:37 回复(0)
n=input().split()
k=list(map(int,input().split()))
b=int(input())
if b == 0:
    k=sorted(k)
    for i in k:
        print(i,end=' ')
elif b == 1:
    k=sorted(k)[::-1]
    for j in k:
        print(j,end=' ')
else:
    print('b只能输入0或1')
编辑于 2024-03-13 09:33:32 回复(0)
input()
list_initial = input().split()
list_output = []
for i in range(len(list_initial)):
    list_output.append(int(list_initial[i]))
list_output.sort(reverse=int(input()))
print(' '.join(list(map(str,list_output))))

发表于 2023-09-25 14:25:14 回复(0)
# 解法一
while True:
    try:
        _ = input()
        # 输入按空格分隔然后map为整数再转为list
        s = list(map(int, input().split(" ")))
        # 布尔型变量判断0/1
        flag = bool(int(input()))
        # 按flag的是否来升序或者降序排列
        s = sorted(s, reverse=flag)
        for i in s:
            print(i, end=" ")
    except:
        break

# 解法二
while True:
    try:
        _ = input()
        # 直接分隔
        s = input().split(" ")
        # 布尔型变量判断0/1
        flag = bool(int(input()))
        # 指定类型后,按flag的是否来升序或者降序排列
        s = sorted(s, key = int, reverse=flag)
        for i in s:
            print(i, end=" ")
    except:
        break

发表于 2023-09-16 10:32:15 回复(0)
num = int(input())
input_str = input()
input_array = [int(i) for i in input_str.split(" ")]
tag = int(input())
if tag == 0:
    input_array.sort()
else:
    input_array.sort(reverse=True)

out = ""
for i in range(len(input_array)):
    out += str(input_array[i])
    if i < len(input_array) - 1:
        out += " "
print(out)

发表于 2023-09-12 00:45:37 回复(0)
n = int(input())
num = list(map(int,input().split()))
a = int(input())
if n in range(1,1001):
    if a == 0:
        num.sort()
    
    elif a ==1:
        num.sort(reverse=True)
    else:
        print('输入错误')

for i in num:
    print(i,end=' ')

发表于 2023-08-22 12:04:31 回复(0)
使用sorted()函数进行排序
n = eval(input())
l = input().strip().split()
flag = eval(input())

print(" ".join(sorted(l,key = int, reverse=flag)))



发表于 2023-07-05 20:31:05 回复(0)
while True:
try:
s = int(input())
lis = list(map(int, input().split()))
ordnum = int(input())
if ordnum == 0:
for i in sorted(lis):
print(i,end = " ")
elif ordnum == 1:
for i in (sorted(lis)[::-1]):
print(i,end = " ")
else: break
except:
break
发表于 2023-06-25 11:09:28 回复(0)
a = int(input())
b = input().split()
c = int(input())
# a = 5
# b = "1 2 3 4 5".split()
# c = 1

list1 = list(map(lambda x: int(x), b))
# print(list1)
#
if c == 0:
    l3 = sorted(list1, reverse=False)
    for j in l3:
        print("".join(str(j)), end=" ")
else:
    l3 = sorted(list1, reverse=True)
    for j in l3:
        print("".join(str(j)), end=" ")

发表于 2023-06-13 16:19:00 回复(0)
n = int(input())
data = list(map(int,input().split()))
k = int(input())

def part(data, l, r):
    pivot = data[l]
    while l < r:
        # 右指针
        while l < r and data[r] >= pivot:
            r -=1 
        if data[r] < pivot:
            data[l] = data[r]
        # 左指针
        while l < r and data[l] <= pivot:
            l += 1
        if data[l] > pivot:
            data[r] = data[l]
    if l==r:
        data[l] = pivot
    mid = l #&nbs***bsp;r
    return mid

def quick_sort(data, l, r):
    if l > r:
        return 
    mid = part(data, l, r)
    quick_sort(data, l, mid-1)
    quick_sort(data, mid+1, r)

# 用快排
quick_sort(data, l=0, r=len(data)-1)
if k == 1: # 降序
    data = sorted(data,reverse=True)
print(' '.join([str(i) for i in data]))

    

发表于 2023-03-21 12:42:01 回复(0)
import sys

n = int(input())
t_list = list(map(int,input().split()))
k = int(input())

if n in range(1,1001):
    if k == 0:
        print(*sorted(t_list))
    elif k == 1:
        print(*sorted(t_list,reverse=True))
    else:
        print("排序方式输入值只能是0或1")
发表于 2023-03-12 18:49:57 回复(0)
n = input()
s = map(int,input().split())
flag = int(input())
if flag==1:
rev=True
else:
rev=False
res = sorted(s,reverse=rev)
for i in res:
print(i,end=" ")
发表于 2023-02-26 00:42:47 回复(0)