博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
选择排序、插入排序、冒泡排序python实现
阅读量:7255 次
发布时间:2019-06-29

本文共 1161 字,大约阅读时间需要 3 分钟。

选择排序的时间复杂度为O(n^2),是不稳定的排序

冒泡排序的时间复杂度最好情况下为O(n),最坏情况下为O(n^2),平均情况下为O(n^2),是稳定的排序

插入排序的时间复杂度最好情况下为O(n),最坏情况下为O(n^2),,平均情况下为O(n^2),是稳定的排序

1.选择排序

def selection(lista):	leng=len(lista);	for i in range(0,leng):		index=i;		min=lista[i];		for j in range(i,leng):			if lista[j]
2.插入排序
def insertion(lista):	leng=len(lista);	for i in range(1,leng):		tmp=lista[i];		j=i;		while(j>0 and lista[j-1]>tmp):			lista[j]=lista[j-1];			j=j-1;		lista[j]=tmp;	return lista;
3.冒泡排序

def bubble(lista):	leng=len(lista);	for i in range(0,leng):		for j in range(1,leng-i):			if lista[j-1]>lista[j]:				lista[j-1],lista[j]=lista[j],lista[j-1];	return lista;

4.冒泡排序的改进

假设在某趟排序后数组已经有序,则排序完毕。

def bubble2(lista):	leng=len(lista);	flag=True;	while(flag):		flag=False;		for i in range(0,leng):			for j in range(1,leng-i):				if lista[j-1]>lista[j]:					lista[j-1],lista[j]=lista[j],lista[j-1];					flag=True;	return lista;
測试排序的代码:

lista=[5,3,1,4,7,9,8,2,6];selection(lista);      #选择排序print listalista=[5,3,1,4,7,9,8,2,6];insertion(lista);      #插入排序print listalista=[5,3,1,4,7,9,8,2,6];bubble(lista);        #冒泡排序print listalista=[5,3,1,4,7,9,8,2,6];bubble2(lista);        #冒泡排序改进print lista

转载地址:http://cykdm.baihongyu.com/

你可能感兴趣的文章
ArrayList分析
查看>>
图片加载之SDWebImage(上)
查看>>
android 打包出现错误Error: ResourceName
查看>>
ApacheCN 翻译活动进度公告 2019.2.18
查看>>
【刷算法】两个链表的第一个公共结点
查看>>
iOS中使用OpenGL 实现增高功能
查看>>
使用async await 封装 axios
查看>>
Android自定义View之仿QQ侧滑菜单实现
查看>>
有趣的二进制
查看>>
多delegate使用
查看>>
19 个 JavaScript 常用的简写技术
查看>>
使用MLeaksFinder检测项目内存泄露总结
查看>>
使用Hexo+ github快速搭建自己的博客网站(一)
查看>>
Android NDK开发之旅1 NDK介绍
查看>>
花式垂直居中
查看>>
(血和泪的成果)使用PageHelper分页插件进行后台分页
查看>>
爬蜥学习之旅
查看>>
Gartner Hype Cycle 2010 - 2018
查看>>
git命令行完全解读
查看>>
03、Swagger2和Springmvc整合详细记录(爬坑记录)
查看>>