插入排序(Python实现)
2024-10-12 22:09:20
1. for版本--插入排序
def insert_sort_for(a_list):
'''插入排序for版本'''
num = len(a_list)
for j in range(1,num):
for i in range(j,0,-1):
if a_list[i] < a_list[i-1]:
a_list[i-1],a_list[i] = a_list[i],a_list[i-1]
else:
break
return a_list
2. while版本--插入排序
def insert_sort_while(b_list):
'''插入排序while版本'''
num = len(b_list)
j=1
while j < num:
i = j
while i > 0:
if b_list[i] < b_list[i-1]:
b_list[i-1],b_list[i] = b_list[i],b_list[i-1]
i -= 1
else:
break
j += 1
return b_list
3. 测试用例
if __name__ == '__main__':
a_list = [4,2,1,5,9,8]
print(insert_sort_for(a_list))
b_list = [4,3,9,1,5,6]
print(insert_sort_while(b_list))
4. 算法时间复杂度分析
- 最好时间复杂度:O(n) (升序排列,序列已经处于升序状态了)
- 最坏时间复杂度:O(n2)
- 稳定性:稳定
最新文章
- 新手入门Underscore.js 中文(template)
- 广播变量、累加器、collect
- php29号小结(隔行换色&#183;&#183;&#183;&#183;&#183;&#183;)
- log4j:ERROR A ";org.jboss.logging.appender.FileAppender"; object is not assignable to a ";org.apache.lo .
- SQL语句 远程操作数据库
- 国内外主流BI厂商对比
- download 下载文件 IE兼容性处理
- (函数封装)获取class名称
- (原创)foef注意事项
- 使用百度云 BOS 和 C# SDK 开发数据存储
- eclipse遇到的问题
- JavaScript——DOM树的增查改删总结
- 【Android】Android输入子系统
- 【Python】爬取网站图片
- 使用Python自己实现简单的数据可视化
- 【数据分析知识点】detailed table of contents
- JUC线程池之 ThreadPoolExecutor简介
- 有关ajax
- request.getRemoteAddr() 获取的值为0:0:0:0:0:0:0:1的原因及解决办法
- python模块学习之os
热门文章
- HAProxy配置说明(转)
- 重新粗推了一下Master Theorem
- 通过反射调用Unity编辑器提供的各种功能
- 设计模式——proxy代理模式
- MyBatis Plus:No qualifying bean of type &#39;com.baomidou.mybatisplus.mapper.BaseMapper<;?>;&#39; available: expected single matching bean but found 4
- (原)kenel开机logo的制作
- JavaScript学习历程02
- .net framework 项目 build 出现 未能加载文件或程序集“netfx.force.conflicts”或它的某一个依赖项
- Mybatis sql映射文件浅析 Mybatis简介(三) 简介
- SpringBoot面试题及答案整理