插入法排序 python

实现插入排序算法。介绍如下:

插入排序的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从前向后扫描,找到相应位置并插入。

本次挑战中,你需要在 insertion_sort.py 文件中补充类 InsertionSort 的空缺部分。

InsertionSort 中的 sort 方法用于进行插入排序(从小到大)。

sort 函数的参数 data 用于指定需要排序的数据,其中数据为数组格式。

sort 函数需要返回排序后的数据。

如果传入的 data 为 None,需要使用 raise 语句显示 TypeError。

如果传入的 data 为空数组,需要返回空数组。

python 复制代码
class InsertionSort(object):

    def sort(self, data):
        ### 补充代码 ###
        if data is None:
            raise TypeError("TypeError")
        if not data or len(data) == 1:
            return data

        # 将列表分左右两边,取右边的,向左边插入
        # 左边最大下标
        for i in range(1,len(data)):
            num = data[i]
            k = i - 1
            while(k>=0 and num<data[k]): #边界 和移动条件
                data[k+1]=data[k]
                k-=1
            data[k+1]=num
        return data

        pass
相关推荐
Yupureki1 分钟前
《算法竞赛从入门到国奖》算法基础:入门篇-离散化
c语言·数据结构·c++·算法·visual studio
散峰而望3 分钟前
OJ 题目的做题模式和相关报错情况
java·c语言·数据结构·c++·vscode·算法·visual studio code
无垠的广袤5 分钟前
【工业树莓派 CM0 NANO 单板计算机】YOLO26 部署方案
linux·python·opencv·yolo·树莓派·目标识别
董世昌416 分钟前
HTTP协议中,GET和POST有什么区别?分别适用什么场景?
java·开发语言·前端
独自破碎E6 分钟前
Java中HashMap的默认负载因子为什么设置为0.75?
java·开发语言·网络
STLearner6 分钟前
AAAI 2026 | 时间序列(Time Series) 论文总结[下] (分类,异常检测,基础模型,表示学习,生成)
大数据·论文阅读·人工智能·python·深度学习·机器学习·数据挖掘
幽络源小助理9 分钟前
SpringBoot+Vue大学城水电管理系统源码 | 后勤设备管理 | 幽络源
java·开发语言
闻林禹10 分钟前
c++并发编程
开发语言·c++
科研鬼才(bushi14 分钟前
项目文件夹规范
python
zc.ovo15 分钟前
线段树优化建图
数据结构·c++·算法·图论