插入法排序 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
相关推荐
努力长头发的程序猿12 小时前
Unity2D当中的A*寻路算法
算法·unity·c#
234710212713 小时前
4.18 学习笔记
软件测试·笔记·python·学习
Raink老师13 小时前
用100道题拿下你的算法面试(矩阵篇-2):求转置矩阵
算法·面试·矩阵
zhangjw3416 小时前
Java基础语法:变量、数据类型与运算符,从原理到实战
java·开发语言
算法鑫探19 小时前
闰年判断:C语言实战解析
c语言·数据结构·算法·新人首发
yaoxin52112319 小时前
384. Java IO API - Java 文件复制工具:Copy 示例完整解析
java·开发语言·python
Greyson119 小时前
Layui表格如何使用第三方插件实现树形展示.txt
jvm·数据库·python
WBluuue19 小时前
数据结构与算法:康托展开、约瑟夫环、完美洗牌
c++·算法
2401_8716965219 小时前
mysql行级锁失效的原因排查_检查查询条件与执行计划
jvm·数据库·python