早教吧 育儿知识 作业答案 考试题库 百科 知识分享

请问求两个稀疏相乘,在初始化稀疏矩阵时下面这几个程序语句的作用是什么?for(r=1;rmu;r++)num[r]=0;for(p=1;ptu;p++)num[w->data[p].i]=num[w->data[p].i]+1;w->rpos[1]=1;for(r=2;rmu+1;r++)w->rpos[r]=w->rpos[r-1]+num[r

题目详情
请问求两个稀疏相乘,在初始化稀疏矩阵时下面这几个程序语句的作用是什么?for(r=1;rmu;r++) num[r]=0; for(p=1;ptu;p++) num[w->data[p].i]=num[w->data[p].i]+1; w->rpos[1]=1; for(r=2;rmu+1;r++) w->rpos[r]=w->rpos[r-1]+num[r-1];
▼优质解答
答案和解析
根据你的整个代码来看, part1: for(r=1;rmu;r++) num[r]=0; 这是真正的初始化,把num也就是计数器cnt清零。 以下过程为预处理: part2: for(p=1;ptu;p++) num[w->data[p].i]=num[w->data[p].i]+1; // 也就是num[]++,w->data[p].i是表示行号么? 计数器开始计数了…… part3: w->rpos[1]=1; for(r=2;rmu+1;r++) w->rpos[r]=w->rpos[r-1]+num[r-1]; w->rpos具体累加的效果,即partial_sum,表示的是小于等于r的num数量