我如何使用冒泡排序按数组的长度对二维数组或多个数组进行排序
How do i sort a 2D array or multiple arrays by the length of the array using bubble sort
尝试编写 Python 函数:
def compare_lengths(x, y, z)
将三个数组作为参数并检查它们的长度,然后return按长度顺序将它们作为三元组。
例如,如果函数将 [1,2,3]、[10,20,30,40] 和 [65,32,7] 作为输入,则希望它 return ( [1,2,3], [65,32,7], [10,20,30,40]) 或 ([65,32,7], [1,2,3], [10,20,30 ,40])
可以取为:
Array = [1,2,3],[10,20,30,40],[65,32,7]
或:
x = [1,2,3]
y = [10,20,30,40]
z = [65,32,7]
但需要将其排序为:
([1,2,3], [65,32,7], [10,20,30,40])
或:
([65,32,7], [1,2,3], [10,20,30,40])
使用冒泡排序
你可以这样做,唯一的区别是使用的条件是数组的长度而不是单个值。
n = len(arr)
for i in range(n):
for j in range(n-i-1):
if len(arr[j]) > len(arr[j+1]):
arr[j], arr[j+1] = arr[j+1], arr[j]
您无需发明自己的排序算法或使用冒泡排序。它可以通过 Python 的内置排序机制并将排序标准指定为 lambda 来完成:
arrays = [[1, 2, 3], [10, 20, 30, 40], [65, 32, 7], [3, 3]]
result = sorted(arrays, key=lambda arr: len(arr))
print(result)
或作为就地排序:
arrays = [[1, 2, 3], [10, 20, 30, 40], [65, 32, 7], [3, 3]]
arrays.sort(key=lambda arr: len(arr))
print(arrays)
如果你了解函数指针的概念,你甚至可以做得更短:
arrays = [[1, 2, 3], [10, 20, 30, 40], [65, 32, 7], [3, 3]]
result = sorted(arrays, key=len)
print(result)
尝试编写 Python 函数: def compare_lengths(x, y, z)
将三个数组作为参数并检查它们的长度,然后return按长度顺序将它们作为三元组。
例如,如果函数将 [1,2,3]、[10,20,30,40] 和 [65,32,7] 作为输入,则希望它 return ( [1,2,3], [65,32,7], [10,20,30,40]) 或 ([65,32,7], [1,2,3], [10,20,30 ,40])
可以取为:
Array = [1,2,3],[10,20,30,40],[65,32,7]
或:
x = [1,2,3]
y = [10,20,30,40]
z = [65,32,7]
但需要将其排序为:
([1,2,3], [65,32,7], [10,20,30,40])
或:
([65,32,7], [1,2,3], [10,20,30,40])
使用冒泡排序
你可以这样做,唯一的区别是使用的条件是数组的长度而不是单个值。
n = len(arr)
for i in range(n):
for j in range(n-i-1):
if len(arr[j]) > len(arr[j+1]):
arr[j], arr[j+1] = arr[j+1], arr[j]
您无需发明自己的排序算法或使用冒泡排序。它可以通过 Python 的内置排序机制并将排序标准指定为 lambda 来完成:
arrays = [[1, 2, 3], [10, 20, 30, 40], [65, 32, 7], [3, 3]]
result = sorted(arrays, key=lambda arr: len(arr))
print(result)
或作为就地排序:
arrays = [[1, 2, 3], [10, 20, 30, 40], [65, 32, 7], [3, 3]]
arrays.sort(key=lambda arr: len(arr))
print(arrays)
如果你了解函数指针的概念,你甚至可以做得更短:
arrays = [[1, 2, 3], [10, 20, 30, 40], [65, 32, 7], [3, 3]]
result = sorted(arrays, key=len)
print(result)