⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.txt

📁 分治求最大最小值 可以很快的求的 时间复杂度比其他算法块多了
💻 TXT
字号:
 #include<stdio.h>
 #include<stdlib.h> 
 #define N 100


int n;
void max_min(int *a,int i, int j, int* max,int* min)
{
    int mid,max1,min1,max2,min2;
    if( i==j )
    { *max = * min = a[i]; printf("max=min=%d\n",a[i]);return;}
     if(i == j-1)
    {
    if( a[i] > a[j])
        {*max = a[i];*min = a[j];printf("max=%d    min=%d\n",a[i],a[j]);}
        else
        {*max = a[j];*min = a[i];printf("max=%d    min=%d\n",a[j],a[i]);}
        return ;
     }
    else
    {mid =(i+j)/2;
    max_min(a,i,mid,&max1,&min1);
    max_min(a,mid+1,j,&max2,&min2);
    if(max1>max2) {*max=max1; printf("max=%d\n",max1);}
    else          {*max=max2; printf("max=%d\n",max2);}
    if(min1>min2) {*min=min2; printf("min=%d\n",min2);}
    else          {*min=min1; printf("min=%d\n",min1);}
    }
 }



int main()
 {int i,j;
 int a[N+1]={0};

  int min, max ;
    printf("输入你想判断的数的个数:\n");
    scanf("%d",&n);
    printf("输入你要判断的%d个数:\n",n);
    for(i=0;i<n;i++)  scanf("%d",&a[i]);
     i=0;j=n-1;
      max=min=a[0];
      max_min(a,i,j,&max,&min);
      printf("\n最后得到最大最小值:\n");
      printf("max=%d   min=%d",max,min);
      getch();
      return 0;

 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -