📄 xtjd1.htm
字号:
style='font-family:宋体;color:blue'><span style="mso-spacerun: yes">
</span>O(n<sup>3</sup>)<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:26.25pt'><span lang=EN-US
style='font-family:宋体;color:blue'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
<p><span style='font-size:9.0pt;mso-ascii-font-family:"MS Shell Dlg";
mso-hansi-font-family:"MS Shell Dlg"'>第一章</span><span style='font-size:9.0pt;
font-family:"MS Shell Dlg"'> </span><span style='font-size:9.0pt;mso-ascii-font-family:
"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>绪论</span><span
style='font-size:9.0pt;font-family:"MS Shell Dlg"'> <span lang=EN-US><o:p></o:p></span></span></p>
<p><span lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>1.16 <o:p></o:p></span></p>
<p><span lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>void
print_descending(int x,int y,int z)//</span><span style='font-size:9.0pt;
mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>按从大到小顺序输出三个数</span><span
lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'><br>
{<br>
scanf("%d,%d,%d",&x,&y,&z);<br>
if(x<y) x<->y; //<-></span><span style='font-size:
9.0pt;mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>为表示交换的双目运算符</span><span
lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>,</span><span
style='font-size:9.0pt;mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:
"MS Shell Dlg"'>以下同</span><span lang=EN-US style='font-size:9.0pt;font-family:
"MS Shell Dlg"'><br>
if(y<z) y<->z;<br>
if(x<y) x<->y; //</span><span style='font-size:9.0pt;
mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>冒泡排序</span><span
lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'><br>
printf("%d %d %d",x,y,z);<br>
}//print_descending <o:p></o:p></span></p>
<p><span lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>1.17 <o:p></o:p></span></p>
<p><span lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>Status
fib(int k,int m,int &f)//</span><span style='font-size:9.0pt;mso-ascii-font-family:
"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>求</span><span lang=EN-US
style='font-size:9.0pt;font-family:"MS Shell Dlg"'>k</span><span
style='font-size:9.0pt;mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:
"MS Shell Dlg"'>阶斐波那契序列的第</span><span lang=EN-US style='font-size:9.0pt;
font-family:"MS Shell Dlg"'>m</span><span style='font-size:9.0pt;mso-ascii-font-family:
"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>项的值</span><span
lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>f<br>
{<br>
int tempd;<br>
if(k<2||m<0) return ERROR;<br>
if(m<k-1) f=0;<br>
else if (m==k-1) f=1;<br>
else<br>
{<br>
for(i=0;i<=k-2;i++) temp[i]=0;<br>
temp[k-1]=1; //</span><span style='font-size:9.0pt;
mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>初始化</span><span
lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'><br>
for(i=k;i<=m;i++) //</span><span style='font-size:
9.0pt;mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>求出序列第</span><span
lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>k</span><span
style='font-size:9.0pt;mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:
"MS Shell Dlg"'>至第</span><span lang=EN-US style='font-size:9.0pt;font-family:
"MS Shell Dlg"'>m</span><span style='font-size:9.0pt;mso-ascii-font-family:
"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>个元素的值</span><span
lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'><br>
{<br>
sum=0;<br>
for(j=i-k;j<i;j++) sum+=temp[j];<br>
temp[i]=sum;<br>
}<br>
f=temp[m];<br>
}<br>
return OK;<br>
}//fib<br>
</span><span style='font-size:9.0pt;mso-ascii-font-family:"MS Shell Dlg";
mso-hansi-font-family:"MS Shell Dlg"'>分析</span><span lang=EN-US
style='font-size:9.0pt;font-family:"MS Shell Dlg"'>:</span><span
style='font-size:9.0pt;mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:
"MS Shell Dlg"'>通过保存已经计算出来的结果</span><span lang=EN-US style='font-size:9.0pt;
font-family:"MS Shell Dlg"'>,</span><span style='font-size:9.0pt;mso-ascii-font-family:
"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>此方法的时间复杂度仅为</span><span
lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>O(m^2).</span><span
style='font-size:9.0pt;mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:
"MS Shell Dlg"'>如果采用递归编程</span><span lang=EN-US style='font-size:9.0pt;
font-family:"MS Shell Dlg"'>(</span><span style='font-size:9.0pt;mso-ascii-font-family:
"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>大多数人都会首先想到递归方法</span><span
lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>),</span><span
style='font-size:9.0pt;mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:
"MS Shell Dlg"'>则时间复杂度将高达</span><span lang=EN-US style='font-size:9.0pt;
font-family:"MS Shell Dlg"'>O(k^m). <o:p></o:p></span></p>
<p><span lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>1.18 <o:p></o:p></span></p>
<p><span lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>typedef
struct{<br>
char
*sport;<br>
enum{male,female}
gender;<br>
char
schoolname; //</span><span style='font-size:9.0pt;mso-ascii-font-family:"MS Shell Dlg";
mso-hansi-font-family:"MS Shell Dlg"'>校名为</span><span lang=EN-US
style='font-size:9.0pt;font-family:"MS Shell Dlg"'>'A','B','C','D'</span><span
style='font-size:9.0pt;mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:
"MS Shell Dlg"'>或</span><span lang=EN-US style='font-size:9.0pt;font-family:
"MS Shell Dlg"'>'E'<br>
char
*result;<br>
int
score;<br>
}
resulttype; <o:p></o:p></span></p>
<p><span lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>typedef
struct{<br>
int
malescore;<br>
int
femalescore;<br>
int
totalscore;<br>
}
scoretype; <o:p></o:p></span></p>
<p><span lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>void
summary(resulttype result[ ])//</span><span style='font-size:9.0pt;mso-ascii-font-family:
"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>求各校的男女总分和团体总分</span><span
lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>,</span><span
style='font-size:9.0pt;mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:
"MS Shell Dlg"'>假设结果已经储存在</span><span lang=EN-US style='font-size:9.0pt;
font-family:"MS Shell Dlg"'>result[ ]</span><span style='font-size:9.0pt;
mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>数组中</span><span
lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'><br>
{<br>
scoretype score;<br>
i=0;<br>
while(result[i].sport!=NULL)<br>
{<br>
switch(result[i].schoolname)<br>
{<br>
case 'A':<br>
score[ 0
].totalscore+=result[i].score;<br>
if(result[i].gender==0) score[
0 ].malescore+=result[i].score;<br>
else score[ 0
].femalescore+=result[i].score;<br>
break;<br>
case 'B':<br>
score.totalscore+=result[i].score;<br>
if(result[i].gender==0)
score.malescore+=result[i].score;<br>
else
score.femalescore+=result[i].score;<br>
break;<br>
</span><span style='font-size:9.0pt;
mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>……</span><span
lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'> </span><span
style='font-size:9.0pt;mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:
"MS Shell Dlg"'>……</span><span lang=EN-US style='font-size:9.0pt;font-family:
"MS Shell Dlg"'> </span><span style='font-size:9.0pt;
mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>……</span><span
lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'><br>
}<br>
i++</span><span style='font-size:9.0pt;mso-ascii-font-family:
"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>;</span><span lang=EN-US
style='font-size:9.0pt;font-family:"MS Shell Dlg"'><br>
}<br>
for(i=0;i<5;i++)<br>
{<br>
printf("School %d:\n",i);<br>
printf("Total score of
male:%d\n",score[i].malescore);<br>
printf("Total score of
female:%d\n",score[i].femalescore);<br>
printf("Total score of
all:%d\n\n",score[i].totalscore);<br>
}<br>
}//summary <o:p></o:p></span></p>
<p><span lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>1.19 <o:p></o:p></span></p>
<p><span lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>Status
algo119(int a[ARRSIZE])//</span><span style='font-size:9.0pt;mso-ascii-font-family:
"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>求</span><span lang=EN-US
style='font-size:9.0pt;font-family:"MS Shell Dlg"'>i!*2^i</span><span
style='font-size:9.0pt;mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:
"MS Shell Dlg"'>序列的值且不超过</span><span lang=EN-US style='font-size:9.0pt;
font-family:"MS Shell Dlg"'>maxint<br>
{<br>
last=1;<br>
for(i=1;i<=ARRSIZE;i++)<br>
{a[i-1]=last*2*i;<br>
if((a[i-1]/last)!=(2*i)) reurn OVERFLOW;<br>
last=a[i-1];<br>
return OK;<br>
}<br>
}//algo119<br>
</span><span style='font-size:9.0pt;mso-ascii-font-family:"MS Shell Dlg";
mso-hansi-font-family:"MS Shell Dlg"'>分析</span><span lang=EN-US
style='font-size:9.0pt;font-family:"MS Shell Dlg"'>:</span><span
style='font-size:9.0pt;mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:
"MS Shell Dlg"'>当某一项的结果超过了</span><span lang=EN-US style='font-size:9.0pt;
font-family:"MS Shell Dlg"'>maxint</span><span style='font-size:9.0pt;
mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>时</span><span
lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>,</span><span
style='font-size:9.0pt;mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:
"MS Shell Dlg"'>它除以前面一项的商会发生异常</span><span lang=EN-US style='font-size:9.0pt;
font-family:"MS Shell Dlg"'>. <o:p></o:p></span></p>
<p><span lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>1.20 <o:p></o:p></span></p>
<p><span lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>void
polyvalue()<br>
{<br>
float ad;<br>
float *p=a;<br>
printf("Input number of terms:");<br>
scanf("%d",&n);<br>
printf("Input the %d coefficients from a0 to
a%d:\n",n,n);<br>
for(i=0;i<=n;i++) scanf("%f",p++);<br>
printf("Input value of x:");<br>
scanf("%f",&x);<br>
p=a;xp=1;sum=0; //xp</span><span style='font-size:9.0pt;mso-ascii-font-family:
"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>用于存放</span><span
lang=EN-US style='font-size:9.0pt;font-family:"MS Shell Dlg"'>x</span><span
style='font-size:9.0pt;mso-ascii-font-family:"MS Shell Dlg";mso-hansi-font-family:
"MS Shell Dlg"'>的</span><span lang=EN-US style='font-size:9.0pt;font-family:
"MS Shell Dlg"'>i</span><span style='font-size:9.0pt;mso-ascii-font-family:
"MS Shell Dlg";mso-hansi-font-family:"MS Shell Dlg"'>次方</span><span lang=EN-US
style='font-size:9.0pt;font-family:"MS Shell Dlg"'><br>
for(i=0;i<=n;i++)<br>
{<br>
sum+=xp*(*p++);<br>
xp*=x;<br>
}<br>
printf("Value is:%f",sum);<br>
}//polyvalue<o:p></o:p></span></p>
<p class=MsoNormal style='text-indent:26.25pt'><span lang=EN-US
style='font-family:宋体;color:blue'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
<p class=MsoNormal align=center style='text-align:center'><span lang=EN-US
style='font-family:宋体'><![if !supportEmptyParas]> <![endif]><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]> <![endif]><o:p></o:p></span></p>
<p class=MsoNormal><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"> </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"> </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><o:p></o:p></span></p>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -