Python算法编写
来源:互联网 发布:免费网店推广软件 编辑:程序博客网 时间:2024/06/05 12:00
1.1冒泡排序(ps:比较次数较多)
a=[5,2,7,4,3,6,8,0,1,9]for i in range(len(a)-1): for s in range(len(a)-i-1): if a[s] < a[s+1]: temp=a[s] a[s]=a[s+1] a[s+1]=tempprint(a)
1.2冒泡排序(ps:比较次数较少)
a=[5,2,7,4,3,6,8,0,1,9]for i in range(len(a)-1): min=0 for s in range(len(a)-i-1): if a[min] > a[s+1]: min=s+1 temp=a[min] a[min]=a[len(a)-i-1] a[len(a)-i-1]=tempprint(a)
a=[5,2,7,4,3,6,8,0,1,9]for i in range(len(a)-1): min=0 for s in range(len(a)-1-i): if a[min] > a[s+1]: min=s+1 if a[min] != a[len(a)-1-i]: temp=a[min] a[min]=a[len(a)-i-1] a[len(a)-1-i]=tempprint(a)
a=[9,2,7,4,3,6,5,8,1]def quickScore(a,start,end): temp=a[start] for i in range(start+1,end): if temp > a[i] : temp2=a[i] for n in reversed(range(start,i)): a[n+1]=a[n] a[start]=temp2 index=a.index(temp) if index - start > 1 : quickScore(a,start,index) if end-1 - index > 1 : quickScore(a,index+1,end)quickScore(a,0,9)print(a)
编写思想以及步骤如下:
1.要排序的数组a=[9,2,7,4,3,6,5,8,1]2.定义一个指明已完成排序的指针,point=1while point<len(a):3.取出 point 指明的数字 temp=a=[point]4.定义数字插入的位置 index=-15.通过循环判定具体位置 for i in range(point): if temp < a[i]: index=i break6.通过判断index是否为-1判定待插入数字是否需要插入 if index != -1: for i in reversed(range(index,point)): a[i+1]=a[i] a[index]=point point+=1print(a)
a=[9,2,7,4,3,6,5,8,1]bijiao=0jiaohuan=0point=1while point<len(a): temp=a[point] index=-1 for i in range(point): bijiao+=1 if temp<a[i]: index=i break if index !=-1: for i in reversed(range(index,point)): a[i+1]=a[i] jiaohuan+=1 a[index]=temp point+=1print(a)print('比较次数:'+str(bijiao))print('交换次数:'+str(jiaohuan))
3.2插入排序--希尔排序(ps:减半思想,希尔排序是在直接插入排序的基础上延伸而来)
a=[9,2,7,4,3,6,5,8,1]bijiao=0jiaohuan=0dk=len(a)while True: dk=dk//2 #len(a)//2 两个斜杠:表示取整数 for n in range(dk): point=dk+n while point<len(a): temp=a[point] index=-1 for i in range(n,point,dk): bijiao+=1 if temp<a[i]: index=i break if index !=-1: for i in reversed(range(index,point,dk)): a[i+dk]=a[i] jiaohuan+=1 a[index]=temp point+=dk if dk == 1: breakprint(a)print('比较次数:'+str(bijiao))print('交换次数:'+str(jiaohuan))
阅读全文
0 0
- python编写dijkstra算法
- python编写Floyd算法
- python编写PSO算法
- Python算法编写
- 用Python 编写Logistics算法
- Python编写算法导论基本算法
- python心算小游戏,及random()函数自己编写算法
- 基于python 编写的萤火虫算法(GSO)
- 机器学习-python编写Adaboost元算法提高分类性能
- 【Python】基于候选数的解数独算法 + 使用wxPython编写程序界面
- 算法导论第三版第15章课后答案15.4-2(python语言编写)
- 机器学习-python通过序列最小优化算法(SMO)方法编写支持向量机(SVM)
- 【python】:python如何编写函数
- python编写MSN机器人
- 编写Python扩展
- python 编写server socke
- Python 编写 FTP Client
- Python编写九九乘法表
- sublime3安装运行不在C盘的Python文件设置方法!
- 微信二次分享
- Django-part1-编写应用程序
- placeholder字体颜色修改和 jquery 下拉框选择应用
- django查看某个group中的所有user
- Python算法编写
- kubernetes ServiceAccount 配置
- 给程序媛妹子的4个贴心建议
- 查看数据库对象间的依赖关系
- 第三章 扩展你的博客应用
- Linux数据包路由原理、Iptables/netfilter
- oracle 创建用户、创建表等
- UVA 1152 --4 Values whose Sum is 0(枚举--中途相遇法)
- ESP8266的TCP通信