注:这是我自己写的二分查找法(可能有错误),不是经典的二分查找法。
![](https://i-blog.csdnimg.cn/blog_migrate/042b7f1e4dc965f59f22efc75eca25be.png)
ZYT_DimidiateRanging
S=[38,27,43,3,9,82,10]
low=1
A=[]
B=[]
C=[]
print(S)
def ZYT_DimidiateRanging(S):
global low
high = len(S)
mid=int(low+high/2)
A=S[:mid] #在mid之前
B=S[mid:] #从mid开始
Mediater=mid
while len(A)!=1:
high=mid
mid=int(low+high/2)
A=S[:mid]
B=S[mid:]
if len(A)==2:
if A[0]>A[1]:
Mediater1=A[1]
A[1]=A[0]
A[0]=Mediater1
print("\n----A:",A)
print("----B:",B)
if len(B)==1:
A.append(B[0])
for j in range(len(A)):
for k in range(len(C)):
if C[k]>A[j]:
Mediater2=A[j]
A[j]=C[k]
C[k]=Mediater2
C.append(A[j])
print("\nC:",end="")
for y in range(len(C)):
print(C[y],end=" ")
return ZYT_DimidiateRanging(B)
AA=len(C)
print("\n")
print("-----"*AA)
ZYT_DimidiateRanging(S)
print("\n最终的C:",end="")
for y in range(len(C)):
print(C[y],end=" ")