发布网友 发布时间:2022-04-27 02:45
共1个回答
热心网友 时间:2022-04-30 02:53
生活中的实例:一个老太太买白菜,她给挑出的10棵白菜排一下序,然后她拿出了随身携带的笔记本电脑,输入 。
#include "stdio.h"
#define N 10
main()
{
int a[N];
int i,j,p,temp;
for(i=0;iscanf("%d",&a[i]);
for(i=0;i{
p=i; for(j=i+1;jif(a[j]temp=a[i];a[i]=a[p];a[p]=temp;
}
printf(" ");
for(i=0;iprintf("%d ",a[i]);
}
然后得到了白菜的重量排序。
传统的流程图用流程线指出各框的执行顺序,对流程线的使用没有严格*。因此,使用者可以毫不受*地使流程随意地转来转去,使流程图变得毫无规律,阅读者要花很大精力去追踪流程,使人难以理解算法的逻辑。
如果我们写出的算法能*流程的无规律任意转向,而像一本书那样,由各章各节顺序组成,那样,阅读起来就很方便,不会有任何困难,只需从头到尾顺序地看下去即可。
为了提高算法的质量,使算法的设计和阅读方便,必须*箭头的滥用,即不允许无规律地使流程乱转向,只能按顺序地进行下去。但是,算法上难免会包含一些分支和循环,而不可能全部由一个一个框顺序组成。
如上例不是由各框顺序进行的,包含一些流程的向前或向后的非顺序转移。为了解决这个问题,人们设想,如果规定出几种基本结构,然后由这些基本结构按一定规律组成一个算法结构,整个算法的结构是由上而下地将各个基本结构顺序排列起来的。
1966年,Bohra和Jacoplni提出了以下三种基本结构,用这三种基本结构作为表示一个良好算法的基本单元。