插入法排序 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
相关推荐
学也学不废4 分钟前
论文阅读:Advancing Semantic Textual Similarity Modeling
python
让学习成为一种生活方式10 分钟前
啤酒花基因组与重测序--Nature Communications
人工智能·算法
悠仁さん16 分钟前
【C++】vector 类
开发语言·c++
风早爽太20 分钟前
Python 开发笔记:配置生产环境中 Celery Worker 的独立进程启动方式
python·fastapi
_upupup26 分钟前
智能指针的原理及简单模拟实现(C++)
开发语言·c++
l1t28 分钟前
DeepSeek总结的OpenZL压缩变换器
c++·算法
想吃火锅100528 分钟前
【leetcode】238.除了自身以外数组的乘积js
javascript·算法·leetcode
打工仔折腾 AI33 分钟前
飞牛OS上用Docker Compose部署ExerciseDiary运动记录并配置远程访问
运维·人工智能·后端·python·docker·容器·ai agent 实战
en.en..33 分钟前
C语言---宏
c语言·开发语言
郝学胜-神的一滴42 分钟前
C++ Templates 01:拨开迷雾,读懂C++模板经典著作
开发语言·c++·程序人生·游戏·游戏引擎·软件构建