帮忙解释一下这段分治法的伪代码,或者翻译成python代码!1
发布网友
发布时间:2023-10-02 02:51
我来回答
共2个回答
热心网友
时间:2024-10-03 22:33
这是将一个数组A中A[p]到A[q]分成数组L,A[q+1]到A[r]分成数组R,然后再按从小到大的顺序重新排序合并起来。前提是A[p到q]和A[q+1到r]已经按重小到大顺序排好,不然这个函数没有意义。它是merge sort排序算法的一部分,先把数组分成两半,分别排序,在合并起来。比如说数组已经对前半部分和后半部分完成排序[3,2,5,1,6,4]-->[2,3,5,1,4,6]。通过MERGE函数分成[2,3,5]和[1,4,6].然后组合成[1,2,3,4,5,6]
热心网友
时间:2024-10-03 22:34
def merge(list,s,m,e):
L=[]
R=[]
for i in range(s,m+1):
L.append(list[i])
for j in range(m+1,e+1):
R.append(list[j])
i=0
j=0
for p in range(s,e+1):
if(L[i]<=R[j]):
list[p]=L[i]
i=i+1
else:
list[p]=R[j]
j=j+1
if(i==len(L)):
list[p+1:e+1]=R[j:len(R)]
break
elif(j==len(R)):
list[p+1:e+1]=L[i:len(L)]
break
return list
c语言 利用分治法求一组数据的和 求代码!!拜托,恳请大神帮帮忙啦!谢谢...
int QuickAdd(int num[], int nBegin, int nEnd){ if(nBegin>=nEnd){ return num[nBegin];} else { return num[nBegin] + QuickAdd(num, nBegin+1, nEnd);} } int main(){ int a[] = {1,2,3,4,5,6};int nSum = QuickAdd(a, 0, 5);return 1;} ...
帮忙解释一下"圣雄甘地"
米勒令人悚然的报道一下子传遍全球。这个盐厂示威游行大屠杀,成了印度历史的一个转折点。 一这位尊称圣雄的非常人物使殖民地官员不知如何是好。他们呼他为狂徒、伪君子、神秘主义者。安坐在宫中的印度土王和大君认为他是荒谬的煽动者。努力寻求自治的印度政客认为他是蛊惑民心的骗子。伦敦的英国国会议员觉得这事难...