Python实现直接插入排序及测试主函数:兼顾边界、重复元素与不同类型数据验证
以下是用 Python 实现直接插入排序以及测试主函数的代码: ```python def insertion_sort(arr): # 从第二个元素开始 for i in range(1, len(arr)): key = arr[i] # 要插入的元素 j = i - 1 # 将大于 key 的元素向后移动 while j >= 0 and arr[j] > key: arr[j + 1] = arr[j] j -= 1 arr[j + 1] = key # 测试主函数 def test_insertion_sort(): arr = [12, 11, 13, 5, 6] sorted_arr = [5, 6, 11, 12, 13] # 期望的排序结果 insertion_sort(arr) if arr == sorted_arr: print("直接插入排序算法正确") else: print("直接插入排序算法错误") test_insertion_sort() ``` 额外需要注意的逻辑点: 1. 边界情况,比如空数组或只有一个元素的数组。 2. 对于重复元素的处理,确保排序结果的稳定性。 3. 考虑数组元素的类型,确保代码能处理不同类型的数据。 ######[AI写代码神器 | 290点数解答 | 2024-12-17 09:45:33]
相关提问
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)380
- C 语言实现链表操作:创建、输出、删除及插入功能详解(字节豆包 | 534点数解答 | 2024-12-09 21:33:48)364
- C语言实现链表创建、输出、删除与插入操作的完整代码及注意要点(字节豆包 | 609点数解答 | 2024-12-18 12:18:21)380
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)496
- MySQL 数据库操作:用德鲁伊连接池和 Spring JDBC 实现 MVC 架构下 Student 表操作及事务测试全解析(字节豆包 | 1115点数解答 | 2025-03-19 11:17:31)311
- Spring JDBC+德鲁伊连接池:MVC架构下MySQL学生表查询、事务验证及代码实现全解析(DeepSeek | 1275点数解答 | 2025-03-19 11:21:32)297
- Java代码实现从JSON数据中提取ID,涉及“数据”与“项目 - 知识库”结构(字节豆包 | 603点数解答 | 2025-04-15 22:48:51)255
- C++ 实现:计算一排鹅与最高、最矮鹅的身高差及代码详解(字节豆包 | 549点数解答 | 2025-11-16 20:19:06)105
- 编程揭秘:计算 𝑛! 在 𝑃 进制下末尾零个数的方法与代码实现(DeepSeek | 549点数解答 | 2026-01-11 17:49:54)63
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)449
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)440
- 深入解析格雷码生成算法:递归求解与代码实现(DeepSeek | 443点数解答 | 2026-01-05 12:21:49)73