插入法排序 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
相关推荐
你的冰西瓜2 小时前
C++中的list容器详解
开发语言·c++·stl·list
wuhen_n2 小时前
LeetCode -- 1:两数之和(简单)
javascript·算法·leetcode·职场和发展
就不掉头发2 小时前
I/O复用
运维·服务器·c语言·开发语言
梦里小白龙3 小时前
JAVA 策略模式+工厂模式
java·开发语言·策略模式
安_3 小时前
js 数组splice跟slice
开发语言·前端·javascript
程序员葫芦娃3 小时前
【Java毕设项目】基于SSM的旅游资源网站
java·开发语言·数据库·编程·课程设计·旅游·毕设
Pocker_Spades_A3 小时前
飞算Java在线学生成绩综合统计分析系统的设计与实现
java·开发语言·java开发·飞算javaai炫技赛
Yuer20253 小时前
用 Rust 做分布式查询引擎之前,我先写了一个最小执行 POC
开发语言·分布式·rust
Francek Chen3 小时前
【飞算JavaAI】智能开发助手赋能Java领域,飞算JavaAI全方位解析
java·开发语言·人工智能·ai编程·飞算