數據結構c++ 建立transpose 的step table 計算步驟

void Transpose(int **a, int n)

{

  for(int i-0;i<n-1;i++){

    for(int j=i+1;j<n;j++){

      swap(a[i][j],a[j][i])

     }

  }

}

 

增加 count 計算步驟

void Transpose(int **a, int n)

{

  int count=0;

  for(int i-0;i<n-1;i++){

    count++;

    for(int j=i+1;j<n;j++){

      count++;

      swap(a[i][j],a[j][i])

      count++;

     }count++;

  }count++;

}

 

但我不知道怎麼建立step table計算 total steps

像這樣

 

①代码里的i-0应该是i=0吧,另外大多数情况下不论进行什么的计数都不会需要这么多个count++吧。。。这已经不是统计计算步骤了,因为你在循环开始处就添加了count++,这样每一次开始变化一个数,甚至还没有开始处理,你就进行了计数。我想你的计数逻辑可能需要继续理理

②图片中的s/e和出现频率这些参数在不了解具体算法思路的情况下真的是难以理解,麻烦您附上教材对这段转置功能实现的讲解,否则随便写一种算法的步数计算大概有些驴头对马嘴。