幾個維度相同的數組轉置算法,這兩種完全相同://注意:如果維度不同,轉置會出錯誤,因為下標會越界。。。解決辦法是把數組的維度調齊,或者是寫到另一新數組中。
for(int i=0;i<row;i++)
for(int j=0;j<i;j++)
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
-----------------------------------------
for(int i=0;i<row;i++)
for(int j=i;j<row;j++) //或者for(int j=row-1;j>i;j--) 都一樣
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
-----------------------------------------
當然還有效率低下的:
for(int i=0;i<row;i++)
for(int j<0;j<row;j++)
{
if(j<i)continue; ///或者if(j>i)continue; 因為是正矩形,所以大於小於都一樣,都已經轉換過一次了。
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}