日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

矩阵三元组的快速转置

發布時間:2024/1/1 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 矩阵三元组的快速转置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 三元組矩陣的快速轉置主要借助了兩個外部數組,Num[]和Copt[],Num[]存放了轉置之前的矩陣每一列中元素的個數。Copt[]矩陣存放了轉置之后的三元組舉證項應該存放的數據結構中的位置。

2. 由于轉置前第n列第一個元素位置在轉置之后的位置是轉置之前第n列之前所有元素之和,所以通過Num[]和Copt[]數組就可以記錄轉置之后三元組矩陣每一項應該存放的位置。

?代碼:

status FasterTransposesMatrix(TSMatrix M, TSMatrix &T){T.mu = M.nu;T.nu = M.mu;T.tu = M.tu;//將數據結構中M三元組的表頭轉置的復制到T的三元組表頭中int Num[] = 0;if(T.tu){//初始化Num數組for(int col = 1; col <= M.nu; ++col){Num[col] = 0;}for(int t = 1; t <= M.tu; ++t){++Num[M.data[t].j];//計算原數組中每一列的元素個數}int copt[1] = 1;//初始化copt數組,該數組存放轉置后元素應該存放的三元組位置for (int col = 2; col <= M.nu; ++col){copt[col] = copt[col-1] + Num[col-1];}for (int p = 1; p<=M.tu; ++p){//找到轉換之前M三元組對應數據結構位置col = M.data[p].j;//找到copt中存放的當前轉置之前的三元組應該存放的轉置之后的位置q = copt[col];T.data[q].i = M.data[p].j;T.data[q].j = M.data[p].i;T.data[q].v = M.data[p].v;//不要忘記在后移一項下一個元素需要移動的位置++copt[col];}} }

?

總結

以上是生活随笔為你收集整理的矩阵三元组的快速转置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。