python部分排序算法(网友提供)
// 冒泡排序
def bubble(x,n):
'''This function orders the original items x
x is list,n is the length of x'''
for i in range(n):
for j in range(n-1):
if x[j] >x[j+1]:
t = x[j]
x[j]= x[j+1]
x[j+1] = t
// 插入排序
def insert(x,n):
i = 1
while i<n-1:
key = x[i]
j = i-1
while j>=0 and key<x[j]:
x[j+1]= x[j]
j -= 1
x[j+1] = key
i += 1
// 选择排序
def select(x,n):
for i in range(n-1):
key = i
for j in range(i+1,n):
if x[j] < x[key]:
key = j
if key!=i:
t = x[i]
x[i] = x[key]
x[key] = t
// 快速排序
def partition(x,low,high):
key = x[low]
while low<high:
while low<high and x[high]>=key:
high -= 1
if low < high:
x[low]= x[high]
low += 1
while low <high and x[low]<=key:
low += 1
if low < high:
x[high] = x[low]
high -= 1
x[low] = key
return low
def quick(x,low,high):
if low < high:
p = partition(x,low,high)
quick(x,low,p-1)
quick(x,p+1,high)
最新文章
- HTTP状态码
- .NET invoke NetSuite Restlet
- 【POJ 3261】Milk Patterns 可重叠的k次最长重复子串
- php中发送email
- JQuery解析json数据
- [Tex学习笔记]发一篇文章的经历
- Yii: 设置数据翻页
- BZOJ 4027 [HEOI 2015] 兔子与樱花 解题报告
- GPUImage的简单使用
- java 大数据处理之内存溢出解决办法(一)
- Memcached报错
- vb.net转换为C#方法
- 阿里云ECSserver部署django
- WinFrom中使用WPF的窗体
- UCOS-II学习记录
- webservice第三篇【接口开发webservice、CXF框架使用、IDEA下使用webservice、小例子】
- win10 下 学习 xe10 误以为调试失效
- CentOS 7修改网卡名称
- word20161229
- LaTeX技巧892: Ubuntu 安装新版本TeXLive并更新