1. 问题描述
定义一个函数,根据输入的数据(列表或元组),实现以元素的绝对值对原数据按降序排列,并用字符串输出排序结果,元素之间以空格分隔。不能调用库函数sort或者sorted。
2. 算法设计
- 参数:用列表或元组表示的序列数据;
- 返回值:按元素的绝对值进行降序排列后的字符串,以空格分隔;
- 错误:如果输入非列表或者元组数据,则输出“数据输入错误!”。
3. 测试用例
-
用例1:
- 输入:[-5, 6, 3, -4, 2]
- 输出:6 -5 -4 3 2
-
用例2:
- 输入:(9, -6, -4, -3, 1, 0)
- 输出:9 -6 -4 -3 1 0
def f(s):
ls = []
t=0
s = s.split(',')
for i in s:
ls.append(int(i))
for i in range(0,len(ls)):
for j in range(i, len(ls)-1):
if abs(ls[i]) < abs(ls[j+1]):
t=ls[i]
ls[i]=ls[j+1]
ls[j+1]=t
# if i==len(ls)-1:
# print(ls[i])
# else:
# print(ls[i],end=' ')
for i in range(len(ls)-1):
print(ls[i],end=' ')
print(ls[len(ls)-1])
s=input()
if s[0] != '[' and s[0] != '(':
print("数据输入错误!")
else: