插入法排序 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
相关推荐
2201_758642643 分钟前
嵌入式C++开发注意事项
开发语言·c++·算法
七夜zippoe6 分钟前
WebAssembly与Python:在浏览器中运行Python
开发语言·python·wasm·webassembly·pyscript
m0_6625779711 分钟前
自动化与脚本
jvm·数据库·python
AI科技星16 分钟前
基于v≡c第一性原理的大统一力方程:严格推导、全维度验证与四大基本相互作用的统一
人工智能·线性代数·算法·机器学习·平面
小杍随笔18 分钟前
【Rust 语言编程知识与应用:同步机制详解】
开发语言·算法·rust
sprite_雪碧20 分钟前
枚举 / 搜索类算法(机试核心考点)
算法
telllong22 分钟前
消息总线设计:asyncio.Queue实战
python·架构设计·asyncio
罗湖老棍子26 分钟前
简单题(信息学奥赛一本通- P1539)
数据结构·算法·树状数组·区间修改 单点查询
羊小猪~~33 分钟前
【论文精度】Transformer---大模型基石
人工智能·深度学习·考研·算法·机器学习·transformer
GawynKing35 分钟前
Java文件传输利器:MultipartFile介绍
java·开发语言