码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构时间复杂度

时间:2018-02-12 11:11:27      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:数据结构   i++   using   iostream   max   bsp   结构   gpo   时间复杂度   

问题引出:

编程找出指定数列的所有子列和的最大值;

假定数列:

int arry[16] = {5, -6, 4, -5, 3, 1, 2, -4, 8, -9, 3, 1, -7, 6, 4, -1};
 
算法一:
#include <iostream>
using namespace std;
int main()
{
    const int N = 16;
    int arry[N] = {5, -6, 4, -5, 3, 1, 2, -4, 8, -9, 3, 1, -7, 6, 4, -1};
    int maxsum = 0;
    
    for (int k = 0; k < N; k++)
    {
        for (int j = k; j < N; j++)
        {
            int tempsum = 0;
            for (int i = k; i <= j; i++)
            {
                tempsum += arry[i];  
            }
            maxsum = tempsum > maxsum ? tempsum : maxsum;
        }
    }
    cout << maxsum << endl;
    return 0;
}

例用三个循环:其时间复杂度T(N) = O(N3);

算法二:

#include <iostream>
using namespace std;
int main()
{
    const int N = 16;
    int arry[N] = {5, -6, 4, -5, 3, 1, 2, -4, 8, -9, 3, 1, -7, 6, 4, -1};
    int maxsum = 0;
    
    for (int k = 0; k < N; k++)
    {
        int tempsum = 0;
        for (int j = k; j < N; j++)
        {
            tempsum += arry[j];    
            maxsum = tempsum > maxsum ? tempsum : maxsum;
        }
    }
    cout << maxsum << endl;
    return 0;
}

例用两个循环:其时间复杂度T(N) = O(N2);

算法三:

 

算法四:

 线性表:

 

数据结构时间复杂度

标签:数据结构   i++   using   iostream   max   bsp   结构   gpo   时间复杂度   

原文地址:https://www.cnblogs.com/flowingwind/p/8443585.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!