def findIndex(list,start,end):
index = list[start]
i=start ,j=end+1
while(1):
i+=1
while(list[i] < index):
if(i == end):
break
i+=1
j-=1
while(list[j ] > index):
if(j == start):
break
j-=1
if (i >= j):
break
temp=list[i]
list[i]=list[j]
list[j]=temp
temp = list[j]
list[j] = list[start]
list[start] = temp
return j
def quikSourt(list,start_index,end_index):
if(start_index>=end_index):
return
middle=findIndex(list,start_index,end_index)
print(middle)
quikSourt(list,middle+1,end_index)
quikSourt(list,start_index,middle-1)
l=[7,5,2,4,1,3]
quikSourt(l,0,len(l)-1)
print(l)
注意:++ --
這樣的用法不是用來自增(減)溃槐,而是實現(xiàn)數(shù)學(xué)中的符號運算操作:
i = 2
++ i #輸出:2
+(+i) #輸出:2
-(+i) #輸出:-2
+(-i) #輸出:-2
-(-i) #輸出:2
應(yīng)該
i = 2
2 i += 1 #實現(xiàn)自增
3 print(i) #輸出:3
4 i -= 1 #實現(xiàn)自減
5 print(i) #輸出:2
二分查找
def binarySearch(list,data):
start=0
end=len(list)-1
while(start <= end ):
middle=int((start+end)/2)
if(list[middle]>data):
end = middle -1
elif(list[middle]<data):
start = middle + 1
else:
return middle
return -1
print(binarySearch([1,2,4,6,7,8,9,11,34,55],55))