将2d数组的某些元素转换为1d数组的时间复杂度

时间:2018-03-03 10:54:04

标签: algorithm data-structures time-complexity radix-sort

我正在尝试以自己的方式实现Radix Sort。 我已经成功实现了它,但我怀疑我可能已经改变了Sort by my Method的时间复杂度。 所以假设我有一个带有7个元素的1 d数组,我想要排序。 我做了一个大小为7X10的二维阵列(用作一个桶), 所以这个2d最多有7个非零元素,其余的将为零。 现在在我的实现中有一个步骤,我必须将那些非零元素从2d数组复制到我原来的1d数组 所以我按如下方式编写代码

注意:c是一个初始化为0并且递增的索引变量

for(int i=0;i<10;i++)
          {
              for(int j=0;j<bkt.length;j++)
              {
                  if(bkt[j][i]!=0)
                  {
                      ar[c]=bkt[j][i];
                      c++;
                  }
              }
          }

这些嵌套循环也会改变我的时间复杂度吗? 时间复杂度将取决于if条件被修改的次数?

或让我让问题更容易,假设我有一个nXn的2d数组并说它有10个非零元素并且休息为0并且假设我应用类似的步骤将数组的非零元素复制到1d阵列。 因为这个步骤的时间复杂度是n ^ 2,因为有2个for循环,而i和j的值只增加了1,所以所有元素都需要被扫描?

0 个答案:

没有答案