刷题笔记 | 算法模板题-排序

题目描述

给定一个长度为 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]
posted @ 2022-12-14 09:09  不期而遇zlq  阅读(81)  评论(0)    收藏  举报