• 数组求和(两种方法)


    #include  <iostream>
    using namespace std;
    
    //数组求和
    
    //方法一:时间复杂度为O(n),额外空间为(n)
    int ArraySum(int arr[],int n)
    {
        int sum = 0;
        for (int i = 0; i < n; i++)
        {
            sum += arr[i];
        }
        return sum;
    }
    
    //方法二:递归的方法,时间复杂度为O(n),额外空间为log(n)
    int ArraySum(int arr[], int low, int high)
    {
        if (low ==  high)
            return arr[low];
        else if (low<high)
        {
            int mid = (low + high) >> 1;
            return ArraySum(arr, low, mid) + ArraySum(arr, mid+1, high);
        }
    
    }
    
    
    int main()
    {
        int arr[11] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ,11};
        int sum_1, sum_2=0;
        sum_1 = ArraySum(arr, 11);
        sum_2 = ArraySum(arr, 0, 11-1);  //一定要注意,这里是10而不是11,因为数组下标为准,不存在arr[11],已经溢出
        cout << "方法一:" << sum_1 << endl;
        cout << "方法二:" << sum_2 << endl;
        return 0;
    }
  • 相关阅读:
    STM32学习中出现的错误
    原码 反码 补码 移码
    LiauidCrystal
    gpio 的配置
    ARM7探究
    导轨控制问题
    A4988驱动42步进电机
    arduino驱动oled
    计算机组成原理
    arduino basic issue
  • 原文地址:https://www.cnblogs.com/panlangen/p/7993612.html
Copyright © 2020-2023  润新知