text2-14.htm

来自「浙江大学计算机学院数据结构课程的教学课件」· HTM 代码 · 共 59 行

HTM
59
字号
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#FFFFFF" link="#0000FF" vlink="#3399FF" alink="#FF0066">
<div id="Layer1" style="position:absolute; width:711px; height:21px; z-index:1; top: 10px; background-color: #CCCCCC; layer-background-color: #CCCCCC; border: 1px none #000000; left: 26px"><b>|</b><font face="宋体" size="2"><a href="../text1/text1-0.htm">第一章</a></font><b>|</b><font face="宋体" size="2">第二章</font><b>|</b><font face="宋体" size="2"><a href="../text3/text3-0.htm">第三章</a></font><b>|</b><font face="宋体" size="2"><a href="../text4/text4-0.htm">第四章</a></font><b>|</b><font face="宋体" size="2"><a href="../text5/text5-0.htm">第五章</a></font><b>|</b><font face="宋体" size="2"><a href="../text6/text6-0.htm">第六章</a></font><b>|</b><font face="宋体" size="2"><a href="../text7/text7-0.htm">第七章</a></font><b>|</b><font face="宋体" size="2"><a href="../text8/text8-0.htm">第八章</a></font><b>|</b><font face="宋体" size="2"><a href="../text9/text9-0.htm">第九章</a></font><b>|</b><font face="宋体" size="2"><a href="../text10/text10-0.htm">第十章</a></font><b>|</b><font size="2" face="宋体"><a href="../textA/textA-0.htm">算法分析</a><b><font color="#000000">|</font></b> 
  </font></div>
<pre align="left">

<font color="#FF0033" size="5"><b><font face="Arial"> Fast transpose of a sparse matrix
</font></b></font><b><font face="Arial" size="4">
#define MAX-COL 50
void<font color="#FF0033"> fast_transpose</font> ( term a[ ], term b [ ])
<font color="#CC0099" size="3" face="Arial, Helvetica, sans-serif"><i>/* b is set to the transpose of a */</i></font>
{	int row_terms<font size="3">[MAX_COL]</font>, starting_pos<font size="3">[MAX_COL];</font>	
    int   i, j;
    num_cols = a[0].col;
    num_terms = a[0].value;
    b[0].row = num_cols;  b[0].col = a[0].row              
    b[0].value =num_terms;
    if (num_terms > 0)  {                <font color="#CC0099" size="3" face="Arial, Helvetica, sans-serif"><i>/* non zero matrix*/</i></font>
        <font face="Arial, Helvetica, sans-serif" color="#FF0000">for</font> ( i = 0; i < num_cols; i++)    <i><font face="Arial, Helvetica, sans-serif">row_terms[ i ] = 0;</font></i>
               <i><font face="Arial, Helvetica, sans-serif" size="3" color="#FF0099">   <font color="#CC0099"> /*计每行个数*/</font></font></i>
        <font face="Arial, Helvetica, sans-serif" color="#FF0000">for</font> ( i = 1; i <=num_terms;  i++)   <i><font face="Arial, Helvetica, sans-serif"> row_terms[a [ i ].col]++</font></i>;
        starting_pos[0] =1;
       <font face="Arial, Helvetica, sans-serif" color="#FF0000"> for</font> ( i =1; i < num_cols; i++)  <font face="Arial, Helvetica, sans-serif" size="3" color="#CC0099"> <i>/*计每行起始地址*/</i></font><font face="Arial, Helvetica, sans-serif" size="3" color="#FF0099"><i>
</i></font>             starting_pos[i] = starting_pos[i-1] + row_terms[i-1];
      <font face="Arial, Helvetica, sans-serif" color="#FF0000">  for </font>( i = 1; i <=num_terms;  i++)   {
             j = starting_pos[ a[i].col]++;
            b[j].row = a [i].col;  b[j].col = a [i ].row;
            b[j].value = a[i].value;
         }   
     }
}				

	 	<font face="Arial, Helvetica, sans-serif" color="#FF0000">[0] 	[1]	[2]	[3]	[4]	[5]</font>
<i>row_terms</i> =	2	1	2	2	0	1
<i>starting_pos</i>=	1	3	4	6	8	8
  
<font color="#FF0033">Analysis
</font> <font color="#0033CC">two dimensions</font>   O (<i> rows* columns</i>)<font color="#0033CC">      <i><font face="Arial, Helvetica, sans-serif" size="3" color="#CC0099">/*two dimensional*/</font></i>
 transpose</font>              O (<i>columns * elements</i>)
<font color="#0033CC"> fast_transpose </font>    O (<i>column + elements</i>)
 <font color="#CC0033"><font face="Arial, Helvetica, sans-serif" color="#FF0000"> worst case elements=rows* columns</font></font>

</font></b></pre>
<table width="731" cellspacing="0" cellpadding="0">
  <tr> 
    <td width="327">&nbsp;</td>
    <td width="271"><a href="../index.htm"><img width="60" height="25" usemap="#MapMap4" border="0" src="../../images/home.gif"></a><a href="../index.htm"><map name="MapMap4"><area shape="rect" coords="42,-34,88,-15" href="text0.htm"><area shape="rect" coords="4,4,55,23" href="text2-index.htm"></map></a></td>
    <td width="131"><font face="楷体_GB2312" size="2"><b><a href="text2-13.htm">上一页</a> 
      <a href="text2-15.htm">下一页</a> </b></font></td>
  </tr>
</table>
</body>
</html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?