python">#快速排序算法(从小到大)defquicksort(data):iflen(data)>=2:# 递归入口及出口
mid = data[len(data)//2]# 选取中间基准值,也可以选取第一个或最后一个元素
left, right =[],[]# 定义基准值左右两侧的列表
data.remove(mid)# 从原始数组中移除基准值 for num in data:if num >= mid:
right.append(num)else:
left.append(num)return quicksort(left)+[mid]+ quicksort(right)else:return data
if __name__ =='__main__':
array =[2,3,5,7,1,4,6,15,5,2,7,9,10,15,9,17,12]print(quicksort(array))
python">#选择排序算法(从小到大)defselectsort(data):
length=len(data)for i inrange(0,length):min=i
for j inrange(i+1,length):if data[min]>data[j]:min=j
data[min],data[i]=data[i],data[min]return data
if __name__=='__main__':
a=[58,47,69,20,15,66,52,80,30,64]print(selectsort(a))
python">#归并排序算法defmerge_sort(lst):iflen(lst)<=1:return lst
middle =int(len(lst)/2)
left = merge_sort(lst[:middle])
right = merge_sort(lst[middle:])
merged =[]while left and right:
merged.append(left.pop(0)if left[0]<= right[0]else right.pop(0))
merged.extend(right if right else left)return merged
data_lst=[58,47,69,20,15,66,52,80,30,64]print(merge_sort(data_lst))
#二分法求解平方根
def halfsqrt(num):resultnum/2.0low0.0highnum*1.0while abs(result**2-num)>0.000001:if result**2>num:highresultresultlow(high-low)/2else:lowresultresulthigh-(high-low)/2return result
if __name__ __main__:num10print("%d的平方根为…
#图的深度优先和广度优先遍历
def DFS(graph,s): #深度优先遍历,基于栈stack[] #建立栈stack.append(s) data[] #记录已经遍历过的点data.append(s)while stack:nstack.pop() # 取出栈中最后一个元素并删掉nodesgraph[n]for i in nodes[::-1]: #栈先进后出if i not in data:st…