首页 > 解决方案 > 计算具有三个嵌套循环的 Big-O 表示法

问题描述

我想为我的代码找到 Big_O 表示法。它有三个嵌套循环,每个循环都有可能变化的参数。根据我的理解(我不确定这是否正确)。

时间复杂度是外循环中的大小,O(NKC)是用户插入的常数。也是常数,在使用其他数据集时可能会发生变化。NKC

我的代码:

 for (int m=0; m< size; m++)
    {
    int array_Y_class_target[2]{};
        float CT[2]{};
        float SumOf_Each_class_distances[2] = { 0.0 };
        int min_index = -1;
        for (int i = k; i > 0; --i) {
            for (int c = 0; c < 2; ++c) {
                for (int j = 0; j < i; ++j) {
                       int index = index_arr[j];
                       if (Y_train[index] == c)
                    {
                        array_Y_class_target[c] ++;
                        float dist = array_dist[index_arr[j]];
                        SumOf_Each_class_distances[c] += dist;
                    }
                }
                if (array_Y_class_target[c] != 0)    
                {
    
                    CT[c] = (((float)k / (float)array_Y_class_target[c]) + (SumOf_Each_class_distances[c] / (float)array_Y_class_target[c]));
                }
                else
                {
                    CT[c] = 1.5; // max CT value
    
                }
                
            }

标签: c++time-complexity

解决方案


推荐阅读