⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xtjd1.htm

📁 严蔚民版的数据结构的完整课件
💻 HTM
📖 第 1 页 / 共 3 页
字号:

<body lang=ZH-CN link=blue vlink=purple style='tab-interval:21.0pt;text-justify-trim:
punctuation'>

<div class=Section1 style='layout-grid:15.6pt'>

<p class=MsoNormal align=left style='text-align:left'><b><span
style='font-size:24.0pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman";color:blue'>数据结构辅导站</span></b><b><span
lang=EN-US style='font-size:24.0pt;color:blue'><span style="mso-spacerun:
yes">&nbsp; </span></span></b><span lang=EN-US style='font-family:宋体'><a
href="index.htm"><b><span style='font-size:24.0pt;font-family:"Times New Roman";
text-decoration:none;text-underline:none'><span style="mso-spacerun:
yes">&nbsp;</span></span></b><span style='color:windowtext;text-decoration:
none;text-underline:none'><span style='mso-field-code:"HYPERLINK \0022G\:\\My Documents\\数据结构站点\\datas-sohu\\index\.htm\0022"'><span
style='font-family:"Times New Roman"'><span style='mso-field-code:"HYPERLINK \0022file\:\/\/\/G\:\/My%20Documents\/数据结构站点\/datas-sohu\/index\.htm\0022"'><u><span
style='font-family:宋体;color:blue'>返回主页</span></u></span></span></span></span></a></span><span
lang=EN-US><o:p></o:p></span></p>

<div class=MsoNormal align=center style='text-align:center'><span lang=EN-US>

<hr size=2 width="100%" align=center>

</span></div>


<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'>1.1 试写一个算法,自大到小依次输出顺序读入的三个数X、Y和Z的值。<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US
style='font-family:宋体;color:blue'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US
style='font-family:宋体;color:blue'>void<span style="mso-spacerun: yes">&nbsp;
</span>Desceding(int<span style="mso-spacerun: yes">&nbsp; </span>&amp;x, int <span
style="mso-spacerun: yes">&nbsp;</span>&amp;y, int<span style="mso-spacerun:
yes">&nbsp; </span>&amp;z) {<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US
style='font-family:宋体;color:blue'><span style="mso-spacerun: yes">&nbsp;
</span>//将x、y和z按从大到小的顺序排列<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US
style='font-family:宋体;color:blue'><span style="mso-spacerun: yes">&nbsp;
</span>if (x&lt;y) x←→y;<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US
style='font-family:宋体;color:blue'><span style="mso-spacerun: yes">&nbsp;
</span>if (x&lt;z) x←→z;<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:31.5pt;mso-char-indent-count:3.0;
mso-char-indent-size:10.5pt;mso-char-indent-size:10.5pt'><span lang=EN-US
style='font-family:宋体;color:blue'>if (y&lt;z) y←→z; <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US
style='font-family:宋体;color:blue'>}//Desceding<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US
style='font-family:宋体;color:blue'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'>1.2 试编一个算法求一维数组float
a[n]中的所有元素之和。<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US
style='font-family:宋体;color:blue'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US
style='font-family:宋体;color:blue'>float sum(float a[], int n) {<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US
style='font-family:宋体;color:blue'><span style="mso-spacerun: yes">&nbsp;
</span>// 求数组a[n]中所有元素之和<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US
style='font-family:宋体;color:blue'><span style="mso-spacerun: yes">&nbsp;
</span>for (i=0; i&lt;n; ++i) sum+=a[i];<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US
style='font-family:宋体;color:blue'><span style="mso-spacerun: yes">&nbsp;
</span>return sum;<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US
style='font-family:宋体;color:blue'>}//sum<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US
style='font-family:宋体'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'>1.3 分析下列各算法的时间复杂度:<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:宋体'>(<span lang=EN-US>1)void
prime(int n){<o:p></o:p></span></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>/* 判断n是否是素数 */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>for (i=2;
((n%i)!=0)&amp;&amp;(i&lt;sqrt(n)); i++);<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>if i&gt;sqrt(n)
printf(&quot;%d is a prime number&quot;, n)<span style="mso-spacerun:
yes">&nbsp;&nbsp; </span><o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>else printf(&quot;%d
is not a prime number&quot;, n);<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:26.25pt'><span lang=EN-US
style='font-family:宋体'>}/* prime */<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:26.25pt'><span lang=EN-US
style='font-family:宋体'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:26.25pt'><span style='font-family:宋体;
color:blue'>最坏情况下<span lang=EN-US>O(sqrt(n))<o:p></o:p></span></span></p>

<p class=MsoNormal style='text-indent:26.25pt'><span lang=EN-US
style='font-family:宋体;color:blue'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;</span>(2) float sum1(int n){<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>/* 计算1!+2!+…+n! */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>p=1; sum1=0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>for (i=1; i&lt;=n; ++i){<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>p=p*i;
sum1=sum1+p<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US
style='font-family:宋体'>}/* sum1 */<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US
style='font-family:宋体'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US
style='font-family:宋体;color:blue'>O(n)<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US
style='font-family:宋体;color:blue'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'>(3) float sum2(int
n){<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>/* 计算1!+2!+…+n! */<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt;mso-char-indent-count:2.0;
mso-char-indent-size:10.5pt;mso-char-indent-size:10.5pt'><span lang=EN-US
style='font-family:宋体'>sum2=0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>for (i=1; i&lt;=n; ++i){<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>p=1;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>for (j=1;
j&lt;=i; ++j) p=p*j;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>sum2=sum2+p;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp; </span>}/* sum2 */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp; </span><o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体;color:blue'><span
style="mso-spacerun: yes">&nbsp;&nbsp; </span>O(n<sup>2</sup>)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体;color:blue'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'>(4) void sort(int
a[],int n){<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp; </span>/* 将数组a中的元素按自小到大的顺序排列 */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp; </span>for (i=1; i&lt;=n-1; ++i){<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>k=i;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>for (j=i+1;
j&lt;=n; ++j) if (a[j]&lt;a[k]) k=j;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>if (k&lt;&gt;j)
{x=a[i];a[i]=a[k];a[k]=x;}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp; </span>}/* sort */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt;mso-char-indent-count:2.0;
mso-char-indent-size:10.5pt;mso-char-indent-size:10.5pt'><span lang=EN-US
style='font-family:宋体;color:blue'>O(n<sup>2</sup>)<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:31.5pt'><span lang=EN-US
style='font-family:宋体'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:宋体'>(<span lang=EN-US>5)void
matrimult(a[m][n],b[n][l],c[m][l],int m,int n,int l){<o:p></o:p></span></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>/* a为m×n阶的矩阵,b为n×l阶的矩阵,c为m×l阶的矩阵
*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>/* 计算c=a*b */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>for (i=1; i&lt;=m;
++i)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>for
(j=1; j&lt;=l; ++j)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun:
yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>c[i,j]=0;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>for (i=1; i&lt;=m;
++i)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>for
(j=1; j&lt;=l; ++j)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun:
yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>for
(k=1; k&lt;=n; ++k)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-family:宋体'><span
style="mso-spacerun:
yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>c[i,j]=c[i,j]+a[i,k]*b[k,i];<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:26.25pt'><span lang=EN-US
style='font-family:宋体'>}/* matrimult */<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:26.25pt'><span lang=EN-US
style='font-family:宋体'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:26.25pt'><span lang=EN-US

⌨️ 快捷键说明

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