日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【C】课堂结对联系-求整数数组的子数组之和的最大值(党云龙、黄为)

發布時間:2025/3/17 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【C】课堂结对联系-求整数数组的子数组之和的最大值(党云龙、黄为) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 測試題目
    求整數數組的子數組之和的最大值。
  • 題目分析
    首先是明確題目的目的:求最大值;其次是考慮子數組求和。這里將求最大值寫成一個單獨的函數。主函數未測試函數。這里用到了二重循環,時間復雜度為N^2.
  • 源代碼分析
    #include"stdio.h"
    #define MAXSIZE 100
    /*int Max(int num[],int length) {int max=num[0];//int n;int sum=0;int flag=0;for(int j=0;j<length;j++){if(max<num[j])max=num[j]; }for(int k=0;k<length-1;k++){if(max<(num[k]+num[k+1]))max=(num[k]+num[k+1]);}for(int m=0;m<length-2;m++){if(max<(num[m]+num[m+1]+num[m+2]))max=(num[m]+num[m+1]+num[m+2]);}for(int n=0;n<length-3;n++){if(max<(num[n]+num[n+1]+num[n+2]+num[n+3]))max=(num[n]+num[n+1]+num[n+2]+num[n+3]);}for(int z=0;z<length-4;z++){if(max<(num[z]+num[z+1]+num[z+2]+num[z+3]+num[z+4]))max=(num[z]+num[z+1]+num[z+2]+num[z+3]+num[z+4]);}if(max<(num[0]+num[1]+num[2]+num[3]+num[4]+num[5]))max=(num[0]+num[1]+num[2]+num[3]+num[4]+num[5]);return max; }*/int Max(int num[],int length){int max=num[0];if(length<=0){printf("數組個數為零或負數,錯誤,默認MAX設為0");return 0;}for(int k=0;k<length;k++){if(num[k]==-858993460){printf("數組含為NULL,錯誤,默認MAX設為0");return 0;}}for(int i=0;i<length;i++){int sum=0;for(int j=i;j<length;j++){sum+=num[j];if(max<sum)max=sum;}}return max;} main() {//int num[]={-10,-12,1,-1,9,10};//int length=6;int num[MAXSIZE];int length;printf("輸入數組個數:");scanf("%d",&length);for(int x=0;x<length;x++)scanf("%d",&num[x]);/*for(int i=0;i<6;i++)printf("%d ",num[i]);*/printf("\n");printf("MAX:%d\n",Max(num,length)); }

    這里我進行了一些異常情況的處理






  • 上課思路

  • 擴展-線性實現
    如何利用線性實現,首先要對整形數組進行分析:
    1、零對于和沒有影響。
    2、數組是全負的情況(若只有負數和零,則max=0)
    ? ??
    for(int i=0;i<length;i++) {if(max<num[i])max=num[i]; }

    3、數組是全正的情況(含0)
    ?

    for(int i=0;i<length;i++) {if(max<num[i])max=num[i]; }

    4、有正有負的情況
    ? ? ?首先是要順序尋找第一個大于零的整數,記錄下來數組下標,然后接著尋找下一個負數,得到負數段,也求和,得到一段正數段,求和,按照這種方法遍歷整個數組。
    ? ? ?對這些正數段與負數段進行判斷與求和,從而實現求出最大者。

  • 線性實現
    ? ? ?待下回分解!



轉載于:https://www.cnblogs.com/feelwell/p/3592559.html

總結

以上是生活随笔為你收集整理的【C】课堂结对联系-求整数数组的子数组之和的最大值(党云龙、黄为)的全部內容,希望文章能夠幫你解決所遇到的問題。

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