选择排序(Python实现)
2024-08-29 01:45:55
1. for版本--选择排序
def select_sort_for(a_list):
'''选择排序 for版本'''
num = len(a_list)
for j in range(num-1):
for i in range(j,num):
if a_list[i] < a_list[j]:
a_list[j],a_list[i] = a_list[i],a_list[j]
return a_list
2. while版本--选择排序
def select_sort_while(b_list):
'''选择排序 while版本'''
num = len(b_list)
j = 0;
while j < num-1:
i = j + 1
while i > j and i <= num-1:
if b_list[j] > b_list[i]:
b_list[j],b_list[i] = b_list[i],b_list[j]
i += 1
j += 1
return b_list
3.测试用例
if __name__ == '__main__':
a_list = [2,4,9,1,5]
print(select_sort_for(a_list))
b_list = [2,4,9,1,5]
print(select_sort_while(b_list))
4. 算法时间复杂度分析
- 最好时间复杂度:O(n2)
- 最坏时间复杂度:O(n2)
- 稳定性:不稳定(考虑升序每次选择最大的情况)
最新文章
- ENode简介与各种教学视频资源汇总(要进群这篇文章必看)
- 菜鸟学Linux命令:chmod命令和数字文件权限
- 第四章 跨平台图像显示库——SDL 第一节 与SDL第一次亲密接触
- CSS定位小技巧
- 组件局域网中的无集线器、Windows XP、Windows 7、Windows 8的对等网
- Drupal 7 建站学习手记(四):怎样改动Nivo Slider模块的宽高
- 判断程序是否在VMWare内运行
- Sublime Text 3 修改插件安装位置【sublime text、插件路径、Data】
- Spark调度模式-FIFO和FAIR
- 网页字体在Frontpage2000制作网页中的讲解
- canvasJS
- 学以致用二十三-----shell脚本里调用脚本
- Oracle DBLINK 简单使用
- python---django中STATIC_ROOT和STATIC_URL以及STATICFILES_DIRS
- bzoj千题计划268:bzoj3131: [Sdoi2013]淘金
- Mac XMPP Openfire 服务器配置
- Cloudera Manager Admin控制台启动不起来
- 8-4 Fabled Rooks uva11134
- (2.16)Mysql之SQL基础——函数
- Yahoo Programming Contest 2019