如何用冒泡排序按数组长度排序多数组并实现Python compare_lengths函数
按数组长度排序的Python函数实现(冒泡排序版)
功能要求
- 函数定义为
compare_lengths(x, y, z),接收三个数组作为入参 - 排序规则:按数组长度升序排列,长度相同的数组相对顺序不做强制要求
- 输出要求:返回排序后的三元组
- 实现限制:排序逻辑必须使用冒泡排序算法完成
完整代码实现
def compare_lengths(x, y, z): # 将三个入参数组存入待排序列表 sort_list = [x, y, z] # 冒泡排序逻辑:n个元素最多进行n-1轮外层循环 for i in range(len(sort_list) - 1): # 内层循环:相邻元素比较,每轮结束后最大元素会沉到末尾 for j in range(len(sort_list) - 1 - i): # 按数组长度比较,前序元素更长则交换位置 if len(sort_list[j]) > len(sort_list[j+1]): sort_list[j], sort_list[j+1] = sort_list[j+1], sort_list[j] # 转换为三元组返回 return tuple(sort_list)
调用示例
方式1:分别传入三个数组变量
x = [1,2,3] y = [10,20,30,40] z = [65,32,7] print(compare_lengths(x, y, z))
输出(两种结果均符合要求):([1, 2, 3], [65, 32, 7], [10, 20, 30, 40]) 或 ([65, 32, 7], [1, 2, 3], [10, 20, 30, 40])
方式2:传入解包后的数组元组
Array = [1,2,3],[10,20,30,40],[65,32,7] print(compare_lengths(*Array))
输出结果与方式1一致。
内容的提问来源于stack exchange,提问作者ER404
相关产品推荐
相关产品推荐

