Divide_Conquer

来源:互联网 发布:虚拟机网络 编辑:程序博客网 时间:2024/05/22 14:08
# coding: utf-8# In[22]:# 分治法求和   请编写前述sum函数的代码def SUM(arr,start,end):    if start==end:        return arr[end]    else:        return arr[start]+SUM(arr,start+1,end)# In[28]:date=[x for x in range(1,10)]print(date)# In[29]:a=SUM(date,0,len(date)-1)print(a)# In[30]:#  编写一个递归函数来计算列表包含的元素数def COUNT(arr,start,end):    if start==end:        return 1    return 1+COUNT(arr,start+1,end)print(COUNT(date,0,len(date)-1))# In[31]:#  找出列表中最大的数字def findMax(arr,start,end):    if start==end:        return arr[start]    if arr[start]<findMax(arr,start+1,end):        return findMax(arr,start+1,end)    else:        return arr[start]# In[33]:print(findMax(date,0,len(date)-1))# In[2]:# 快速排序def quick_sort(arr):    if len(arr)<2:        return arr    else:        pivot=arr[0]        less=[i for i in arr[1:] if i<=pivot]        larger=[i for i in arr[1:] if i>pivot]        return quick_sort(less)+[pivot]+quick_sort(larger)# In[3]:data=[2,3,1,4,7,6]print(quick_sort(data))# In[14]:a=[2,1]a.remove(1)print(a)