text1-17.htm

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

HTM
133
字号
<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">第一章</font><b>|</b><font face="宋体" size="2"><a href="text2-0.htm">第二章</a></font><b>|</b><font face="宋体" size="2"><a href="text3-0.htm">第三章</a></font><b>|</b><font face="宋体" size="2"><a href="text4-0.htm">第四章</a></font><b>|</b><font face="宋体" size="2"><a href="text5-0.htm">第五章</a></font><b>|</b><font face="宋体" size="2"><a href="text6-0.htm">第六章</a></font><b>|</b><font face="宋体" size="2"><a href="text7-0.htm">第七章</a></font><b>|</b><font face="宋体" size="2"><a href="text8-0.htm">第八章</a></font><b>|</b><font face="宋体" size="2"><a href="text9-0.htm">第九章</a></font><b>|</b><font face="宋体" size="2"><a href="text10-0.htm">第十章</a></font><b>|</b><font size="2" face="宋体"><a href="textA-0.htm">算法分析</a><b><font color="#000000">|</font></b> 
  </font></div>
<div id="Layer1" style="position:absolute; width:724px; 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">第一章</font><b>|</b><font face="宋体" size="2"><a href="../text2/text2-0.htm">第二章</a></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><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>
【example】<font color="#FF0033">Magic square</font>
    <i>row sum = column sum = diagonals sum  </i>
</b></font></pre>
<table width="265" border="1" align="center">
  <tr>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>15</b></font></td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b> 
      8</b></font></td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b> 
      1</b></font></td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>24</b></font></td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>17</b></font></td>
  </tr>
  <tr>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>16</b></font></td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>14	
      </b></font></td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b> 
      7 </b></font></td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b> 
      5</b></font></td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>23</b></font></td>
  </tr>
  <tr>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>22</b></font></td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>20</b></font></td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>13</b></font> 
    </td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>6</b></font></td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>4</b></font></td>
  </tr>
  <tr>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>3</b></font></td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>21</b></font></td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>19	
      </b></font></td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>12	
      </b></font></td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b> 
      10</b></font></td>
  </tr>
  <tr>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>9</b></font></td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>2</b></font></td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>25</b></font></td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>18	
      </b></font></td>
    <td><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>11</b></font></td>
  </tr>
</table>
<pre><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b>
#include <stdio.h><i>&lt;stdio.h&gt;</i>
#define<font size="3"> MAX_SIZE</font>  15     <font color="#FF00FF"> <font color="#FF0099">/*maximum size of square*/</font></font>
void <font color="#FF0033">main(void)        <font color="#000000">      <font color="#FF0099"> /* construct a magic square, interactively*/</font>
{</font></font>
   static int square[MAX_SIZE][MAX_SIZE];
   int i, j, row, column;     <font color="#FF0099"> /*indices*/</font>
   int count;                     <font color="#FF0099">    /* counter */</font>
   int size;                           <font color="#FF0099">  /* square size */</font>
   <font color="#FF0033">printf</font> ("Enter the size of the square :  ");
   <font color="#FF0033">scan</font> ("%d", &size);
<font color="#FF0099">   /* check for input errors */</font>
  if (size < 1 || size > MAX_SIZE + 1 )  {                                         
       <font color="#FF0033">printf</font>( stderr,  "Error!  size is out of range\n");  <font color="#FF0099">  /* O(1) */</font>
       exit (1);
  }
  if (!(size  % 2) )  {        
       <font color="#FF0033">printf</font>(stderr,  "Error!  size is even\n");
       exit(1);
  }
  for(i = 0; i < size;  i++)
        for ( j = 0;  j < size;  j++)                                           <font color="#FF0066"> /* O(<img src="image/Image6.gif" width="26" height="21">)*/</font>
           square[i][j] = 0;
  square[0][(size -1 )/2] = 1;          <font color="#FF0066">  /* middle of fist row*/</font>
<font color="#FF0066">  /* i and j are current position */</font>
  i = 0;
  j = (size / 2);
  for ( count = 2; count < =size * size;  count ++)  {  <font color="#FF0066">  /* O(</font><font face="Arial, Helvetica, sans-serif" color="#000000" size="4"><b><font color="#FF0066"><img src="image/Image6.gif" width="26" height="21"></font></b></font><font color="#FF0066"> )*/</font>
        row = ( i - 1 < 0) ? ( size -1 ) :  (i -1 );                      <font color="#FF0066">/*up */</font>
        column = ( j -1) ? (size -1 ) : ( j -1 );                     <font color="#FF0066">   /*left*/</font>
        if (square [row][column]                                    <font color="#FF0066">     /* down*/</font>
               i = (++i) % size;<font color="#FF0066">                     </font>
        else {                                              <font color="#FF0066"> /* square is unoccupied*/</font>          <font color="#FF0066"> </font>
               i = row;
               j = ( j -1  < 0 ) ? ( size -1) : - - j:
         }
         square[i][j] = count;
   }
<font color="#FF0066">  /* output the magic square */</font>
  printf (" Magic square of size %d : \n\n", size );
  for  ( i = 0; i < size;  i ++)  {
        for ( j = 0 ; j , size;  j ++) 
            printf( "%5d", square[i][j]);
        printf("\n");
  }
  printf("\n\n");
}                    

<font color="#0000FF">Coxeter's rule:</font>
    1.  put a one in the middle box of the top row
    2.  go up and left assigning number in the increasing order to
         empty box
                            <i>jump off the square
                            occupied</i>
</b></font>
</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="text1-index.htm"></map></a></td>
    <td width="131"><font face="楷体_GB2312" size="2"><b><a href="text1-16.htm">上一页</a> 
      <a href="text1-18.htm">下一页</a> </b></font></td>
  </tr>
</table>
<pre>&nbsp;
</pre>
</body>
</html>

⌨️ 快捷键说明

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