From 741d23b4c852aa18067240771bfcc9c6962252f9 Mon Sep 17 00:00:00 2001 From: fjw0072 Date: Thu, 2 Apr 2026 15:28:23 +0800 Subject: [PATCH] Add bubble sort implementation in a.py --- a.py | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 a.py diff --git a/a.py b/a.py new file mode 100644 index 0000000..b8918e9 --- /dev/null +++ b/a.py @@ -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() \ No newline at end of file