日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

z最大子数组c语言,关于最大子数组问题

發布時間:2024/10/8 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 z最大子数组c语言,关于最大子数组问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該樓層疑似違規已被系統折疊?隱藏此樓查看此樓

純新手,最近想學一下算法,上網看了個教程,看到了一個很經典的返回最大子數組之和的問題,然后我想問一下我用分治法把最大和求出來了,但是要怎么返回子數組本身呢,因為是函數的遞歸,所以有些云里霧里。以下是我模仿著寫的代碼。輸出結果是30。

int MaxAddSub(int *a,int front,int end)

{ //int i1,i2;

if(front==end)

return a[front];

int Middle=(front+end)/2;//尋找中間位置

int Max_1= MaxAddSub(a,front,Middle);//求左側的數組最大的前綴和

int Max_2= MaxAddSub(a,Middle+1,end);//求右側的數組最大的前綴和

int i,New=0,Left=0;

for(i=Middle;i>=front;i--)

{

New+=a[i];

if(Left

{

Left=New;

//i1=i;

}

}

int Right=0;

New=0;

for(i=Middle+1;i<=end;i++)

{

New+=a[i];

if(Right

{

Right=New;

//i2=i;

}

}

int Max_3=Left+Right;

if(Max_1>Max_2&&Max_1>Max_3)

return Max_1;

if(Max_2>Max_1&&Max_2>Max_3)

return Max_2;

if(Max_3>Max_2&&Max_3>Max_1)

return Max_3;

int main()

{

int Max;

int a[9]={1,-2,3,10,-4,7,2,5,7};

Max=MaxAddSub(a,0,8);

printf("%d",Max);

return 0;

}

總結

以上是生活随笔為你收集整理的z最大子数组c语言,关于最大子数组问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。