📅  最后修改于: 2023-12-03 14:58:29.686000             🧑  作者: Mango
这是一个关于排序算法的问题。
请编写一个程序,该程序接受一个整数数组和一个排序类型作为参数,并返回按指定排序类型排序后的数组。
程序应至少支持以下3种排序类型:
以下是一个示例程序,它从命令行接受整型数组,并根据用户指定的排序类型对其进行排序。该程序使用Python语言实现。
import argparse
def parse_arguments():
parser = argparse.ArgumentParser()
parser.add_argument('--numbers', type=int, nargs='+',
help='List of integers to sort')
parser.add_argument('--sort-type', type=str, default='asc',
choices=['asc', 'desc', 'abs'],
help='Type of sorting to apply (asc, desc or abs)')
return parser.parse_args()
def sort(numbers, sort_type='asc'):
if sort_type == 'asc':
return sorted(numbers)
elif sort_type == 'desc':
return sorted(numbers, reverse=True)
elif sort_type == 'abs':
return sorted(numbers, key=abs)
if __name__ == '__main__':
args = parse_arguments()
sorted_numbers = sort(args.numbers, args.sort_type)
print(sorted_numbers)
在运行程序时,您需要指定输入的整数数组和排序类型。例如:
python sort.py --numbers 3 5 -2 7 1 8 --sort-type abs
运行上述命令将返回按照绝对值升序排序后的列表 [1, -2, 3, 5, 7, 8]
。
以上是一个示例程序,用Python实现排序算法。程序使用argparse模块从命令行上接受输入整型数组和排序类型,并使用了Python内置的sorted()函数进行排序。
程序定义了一个sort()函数,它接受两个参数:一个整数数组和一个排序类型。如果排序类型是“asc”,则返回按升序排列的列表,如果排序类型是“desc”,则返回按降序排列的列表, 如果排序类型是“abs”,则返回按绝对值升序排列的列表。
在运行程序时,我们可以指定输入的整数数组和排序类型。程序将返回按照指定排序类型进行排序后的列表。