数据结构分析,求各位看看

C语音设计一个算法,求数组R[0...n-1]中的最大数和最小数,计算其两者之间的差值,分析算法的时间复杂度。

#include <stdio.h>
int main()
{
    int n, i;
    scanf("%d", &n);
    int R[n];
    
    // 输入R部分
    for(i = 0; i < n; ++i)
    {
        scanf("%d", &R[i]);
        //scanf_s("%d", &R[i]);  //高版本的visual studio使用scanf_s函数
    }
    
    int Rmax = R[0],Rmin = R[0];
    
    for(i = 0; i < n; ++i)
    {
        Rmax = Rmax > R[i] ? Rmax : R[i];
        Rmin = Rmin < R[i] ? Rmin : R[i];
    }
    
    int diff = Rmax - Rmin;
    
    printf("max=%d\n", Rmax);
    printf("min=%d\n", Rmin);
    printf("diff=%d\n", diff);
    
    return 0;
}

时间复杂度就是O(n)

如有帮助望采纳

//数组
R={0..n-1}
//最大值初始化
max=0;
//最小值初始化
min=0;
for(int i=0;i<R.length;i++){
// 再循环中找到最大值
if (R[i]>max){
max=R[i];
}
// 在循环中找到最小值
if (R[i]<min){
min=R[i];
}
}
//循环结束后 获得最大值max和最小值min
// 最后的结果等于最大减最小
result=max-min;