python之排序算法
2024-10-13 17:35:38
排序是每个语言都需要学会的,不管是c++、java还是python,套路都是类似的
python中也有自带的排序函数sort,直接使用也可
闲来无事写了几个排序算法,各不相同
1、每次遇到最小的数都交换
list1 = [56,34,87,3,59,10,3543,98] def sortList(listTest = None):
length = len(listTest)
for i in range(length):
for j in range(i+1,length):
if listTest[i] > listTest[j]:
listTest[i],listTest[j] = listTest[j],listTest[i] #直接交换
return listTest ls = sortList(list1)
print(ls)
这种方法会频繁进行交换操作
2、一次循环记录最小值的下标,一次循环只交换一次
list1 = [56,34,87,3,59,10,3543,98] def sortList(listTest = None):
length = len(listTest)
for i in range(length):
temp = i #记录最小值的下标
for j in range(i+1,length):
if listTest[temp] > listTest[j]:
temp = j
print(temp)
if temp != i: #如果第一个不是最小的,那么就交换
listTest[i],listTest[temp] = listTest[temp],listTest[i]
return listTest ls = sortList(list1)
print(ls)
这种就没有频繁交换了,但要每次记录最小值下标
3、不需要交换,使用新list记录最小值
list1 = [56,34,87,3,59,10,3543,98] def sortList(listTest =None):
length = len(listTest)
listTemp = [] #记录每次循环最小值
for i in range(length):
minTemp = listTest[0]
for j in range(1,length):
if minTemp > listTest[j]:
minTemp = listTest[j]
length -= 1
listTest.remove(minTemp) #删除最小值
listTemp.append(minTemp) #记录最小值
return listTemp ls = sortList(list1)
print(ls)
最新文章
- excel学习
- protobuf框架简介
- Google map测量工具
- 用c++处理文件流
- phpcms v9 企业黄页加入企业会员提示“请选择企业库类型!”
- HttpOnly
- LoadRunner安装停在注册界面安装失败----解决办法之一
- Android-管理Activity生命周期 -暂停和恢复一个Activity
- 安装arcgis server完成,打开出现未关联错误怎么办
- [js高手之路] dom常用API【appendChild,insertBefore,removeChild,replaceChild,cloneNode】详解与应用
- python之元组
- jmeter 获取登录token
- DFS基础题
- sqlserver数据库授权操作
- 添加快捷键 ShortCut
- Lucene新版本号对ConjunctionScorer的优化
- xmr monero miner
- HTML页面每次打开的时候都清除页面缓存
- 【转】Windows消息投递流程:一般窗口消息投递(WM_LBUTTONCLICK)
- linux上chrome、vlc等程序root不能运行的解决办法
热门文章
- python--第十一天总结(paramiko 及数据库操作)
- poj2115(扩展欧基里德定理)
- Codeforces Round #449 (Div. 2)
- 安装fftw到window(vs2010)及使用fftw库函数实现4096点fft变换计算
- DBHelper类
- 347. Top K Frequent Elements 最常用的k个元素
- 阮一峰大神的快排?刚才还在纠结sort()的我!真是个小傻瓜
- leveldb 学习记录(二) Slice
- C++ MFC棋牌类小游戏day6
- collection管理程序中不同类别的资源