代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Python
】
几种排序算法
作者:
FuniK
/ 发布于
2013/10/11
/
1047
import sys, getopt, random def bubble_sort(seq): for i in range(len(seq)): for j in range(1,len(seq)): if seq[j-1]>seq[j]: seq[j-1], seq[j]= seq[j], seq[j-1] return seq def insertion_sort(seq): for i in range(1,len(seq)): tmp=seq[i] pos=i; for j in range(i-1,-1,-1): if seq[j]>tmp: seq[j+1]=seq[j] pos=j seq[pos]=tmp return seq def selection_sort(seq): for i in range(len(seq)): min_index=i; for j in range(i,len(seq)): if seq[j]<seq[min_index]: min_index=j seq[i],seq[min_index]=seq[min_index],seq[i] return seq def partition(seq,p,l,r): pivot = seq[p] seq[p],seq[r]=seq[r],seq[p] p_pos = l for i in range(l,r): if seq[i]<=pivot: seq[i],seq[p_pos]=seq[p_pos],seq[i] p_pos=p_pos+1 seq[p_pos],seq[r]=seq[r],seq[p_pos] return p_pos def quick_sort(seq,left,right): if left < right: pivot = random.randint(left,right) mid = partition(seq,pivot,left,right) quick_sort(seq,left,mid-1) quick_sort(seq,mid+1,right) return seq def shell_sort(seq): incr = len(seq)/2 while(incr>=1): for i in range(incr,len(seq)): tmp=seq[i] pos=i; for j in range(i-incr,-1,-incr): if seq[j]>tmp: seq[j+incr]=seq[j] pos=j seq[pos]=tmp incr = incr/2 return seq def usage(): print 'Usage: python sort.py sorttype[-q|-i|-b|-s|--shell] sequence' print 'Example: python sort.py -q 11,32,3,24,5' def main(): try: if(len(sys.argv)==1) or (len(sys.argv)!=3): raise Exception() else: opts,args=getopt.getopt(sys.argv[1:],'qibs',['shell']) if len(args)>0: seq=[] tmp=args[0].split(',') for i in tmp: seq.append(int(i)) else: raise Exception() for opt in opts: if opt[0] =='-q': print quick_sort(seq,0,len(seq)-1) elif opt[0] =='-i': print insertion_sort(seq) elif opt[0] =='-b': print bubble_sort(seq) elif opt[0] =='-s': print selection_sort(seq) elif opt[0] =='--shell': print shell_sort(seq) except Exception,e: usage() print e sys.exit() if __name__ =="__main__": main()
试试其它关键字
排序算法
同语言下
.
比较两个图片的相似度
.
过urllib2获取带有中文参数的url内容
.
不下载获取远程图片的宽度和高度及文件大小
.
通过qrcode库生成二维码
.
通过httplib发送GET和POST请求
.
Django下解决小文件下载
.
遍历windows的所有窗口并输出窗口标题
.
根据窗口标题调用窗口
.
python 抓取搜狗指定公众号
.
pandas读取指定列
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
FuniK
贡献的其它代码
(
1
)
.
几种排序算法
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3