Add bubble sort implementation in a.py
This commit is contained in:
55
a.py
Normal file
55
a.py
Normal file
@@ -0,0 +1,55 @@
|
||||
def bubble_sort(arr):
|
||||
"""
|
||||
冒泡排序算法
|
||||
参数:
|
||||
arr: 待排序的列表
|
||||
返回:
|
||||
排序后的列表
|
||||
"""
|
||||
n = len(arr)
|
||||
# 遍历所有数组元素
|
||||
for i in range(n):
|
||||
# 最后i个元素已经排好序
|
||||
for j in range(0, n - i - 1):
|
||||
# 如果当前元素大于下一个元素,则交换它们
|
||||
if arr[j] > arr[j + 1]:
|
||||
arr[j], arr[j + 1] = arr[j + 1], arr[j]
|
||||
return arr
|
||||
|
||||
|
||||
def test_bubble_sort():
|
||||
"""测试冒泡排序算法"""
|
||||
test_cases = [
|
||||
([], []),
|
||||
([1], [1]),
|
||||
([1, 2, 3], [1, 2, 3]),
|
||||
([3, 2, 1], [1, 2, 3]),
|
||||
([64, 34, 25, 12, 22, 11, 90], [11, 12, 22, 25, 34, 64, 90]),
|
||||
([5, 1, 4, 2, 8], [1, 2, 4, 5, 8]),
|
||||
([-5, -1, -4, -2, -8], [-8, -5, -4, -2, -1]),
|
||||
([0, 0, 0, 0], [0, 0, 0, 0]),
|
||||
([3.2, 1.5, 4.8, 2.1], [1.5, 2.1, 3.2, 4.8]),
|
||||
]
|
||||
|
||||
all_passed = True
|
||||
for i, (input_arr, expected) in enumerate(test_cases):
|
||||
# 复制输入数组,避免修改原数组影响后续测试
|
||||
arr_copy = input_arr.copy()
|
||||
result = bubble_sort(arr_copy)
|
||||
if result == expected:
|
||||
print(f"测试用例 {i + 1} 通过: {input_arr} -> {result}")
|
||||
else:
|
||||
print(f"测试用例 {i + 1} 失败: {input_arr} -> {result}, 期望: {expected}")
|
||||
all_passed = False
|
||||
|
||||
if all_passed:
|
||||
print("所有测试用例通过!")
|
||||
else:
|
||||
print("部分测试用例失败!")
|
||||
|
||||
return all_passed
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# 运行测试
|
||||
test_bubble_sort()
|
||||
Reference in New Issue
Block a user