算法suanfa
可供计算机执行的对数据进行处理的一个有穷步骤,是解决问题的一个逻辑顺序,是解题方法的精确描述.一个算法具有如下性质:
❶是一个有穷动作序列;
❷有且仅有一个初始动作;
❸序列中每一动作仅有一个后继动作;
❹序列终止表示问题有解或无解.
例如,输入给计算机6个数,让它把6个数从大到小排序输出.我们给出如下所示的6个数,让这6个数放入D数组中.用标志P=1表示数组元素进行过交换.P=0,表示未进行交换.
D(1) D(2) D(3) D(4) D(5) D(6) P
初始状态 21 10 17 8 30 15 0
第1遍调整 21 17 10 30 15 8 1
第2遍调整 21 17 30 15 10 8 1
第3遍调整 21 30 17 15 10 8 1
第4遍调整 30 21 17 15 10 8 1
最后检查 30 21 17 15 10 8 0
算法步骤如下:
❶P=0,将标志P置0,
❷使i=1 (i为数组的下标),
❸比较两相邻数组元素的值.
如果D (i) ❹,否则,直接去作
❹."
❹i=i+1.
❺如果i<
❺,则转去作
❸;否则转作
❻.
❻判断是否作过调整,如果P=1,表示检查相邻数组元素值时曾做过交换处理,还需再检查,需转作1;否则(P=0)说明本遍检查未做调整,已经达到要求,不需再做检查,转
❼.
❼输出最后排好序的结果.
以上7个步骤就是解决这一问题的算法.