您的位置:首页 > 编程语言 > Python开发

python应用之二分递归实现sqrt,递归实现快排

2015-10-02 21:50 941 查看
def sqrt(x,min=0,max=0):
if max==0:
max = x
mid = (max+min)/2
if abs(mid**2-x)<0.000000000000000000000000000000000000000000001:
return mid
elif mid**2<x:
return sqrt(x,mid,max)
elif mid**2>x:
return sqrt(x,min,mid)
print(sqrt(36))

#!/usr/bin/env python3
# -*- coding:utf-8 -*-

def partition(list,p,r):
i = p-1
for j in range(p,r):
if list[j]<list[r]:
i+=1
list[j],list[i] = list[i],list[j]
list[i+1],list[r] = list[r],list[i+1]
return i+1
def quickSort(list,p=0,r=-100):
#print(list)
if r == -100:
r = len(list)-1
if p>=r:
return
q = partition(list,p,r)
quickSort(list,p,q-1)
quickSort(list,q+1,r)
l = [2,3,4,1,5,6,3,8,0,12]
quickSort(l)
print(l)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: