刷题笔记 | 算法模板题-排序
题目描述
给定一个长度为 N 的数组 A,请你先从小到大输出它的每个元素,再从大到小输出它的每个元素。
输入描述
第一行包含一个整数 N。
第二行包含 N 个整数 \(a_1,...,a_n\),表示数组 A 的元素。
\[1\leq N\leq 5\times10^5 , -10^9\leq a_i \leq 10^9
\]
输出描述
输出共两行,每行包含 N 个整数,表示答案。
输入输出样例
示例 1
输入
5
1 3 2 6 5
输出
1 2 3 5 6
6 5 3 2 1
import os
import sys
# 请在此输入您的代码
N = int(input())
N_list = list(map(int,input().split()))
ls = []
for i in range(N):
ls.append(N_list[i])
ls.sort()
for i in ls:
print(i,end=" ")
print()
for i in range(N,0,-1):
print(ls[i-1],end=" ")
刷题知识点:
1、input().split()
input().split()用于接收多个输入(空格分开)。
a1,a2,…,an = input().split()
2、map函数的使用
map函数是python中的一个内置函数,map在这里的意思是映射的意思,会根据提供的函数对指定序列做映射。map函数会返回一个迭代器,如果要转换为列表,可以使用 list() 来转换。
语法
map(function, iterable)
> function -- 函数
> iterable -- 序列
map函数的第一个参数是一个函数,第二个参数是一个序列,里面的每个元素作为函数的参数进行计算和判断。函数返回值则被作为新的元素存储起来。
实例
def add(x):
return x**2 #计算x的平方
lists = range(11) #创建包含 0-10 的列表
a = map(add,lists) #计算 0-10 的平方,并映射
print(a) # 返回一个迭代器:<map object at 0x0000025574F68F70>
print(list(a)) # 使用 list() 转换为列表。结果为:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# 使用lambda匿名函数的形式复现上面的代码会更简洁一些
print(list(map(lambda x:x**2,range(11)))) # 结果为:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

浙公网安备 33010602011771号