首页 > 搜索 > java算法与编程,跟我学java编程—什么是程序算法?

java算法与编程,跟我学java编程—什么是程序算法?

互联网 2020-10-22 09:07:19
在线算命,八字测算命理

为了让计算机能够准确无误地完成任务,人们就必须事先对各类问题进行分析,确定解决问题的具体方法和步骤。再编制好一组让计算机执行的指令,交给计算机,让计算机按人们指定的步骤有效地工作。这些具体的方法和步骤,其实就是一个问题的算法。上一节我们说到了计算机程序是为让计算机完成某项任务而编写的指令序列,指令序列就是解决问题的算法。

让我们来看一个冒泡排序算法,冒泡排序是将一组数字按照从小到大或者从大到小的顺序进行排列,该算法一次比较两个元素,如果他们的顺序错误就把他们交换过来,重复访问所有数字并进行比较和交换,直到再没有数字需要交换,说明该组数已经排序完成。

【例题:冒泡排序算法实例】

对下面的一组数字利用冒泡排序算法,按照从大到小进行排序。为叙述方便和清晰,在每个数字前加上标号,当比较或交换两个数字时,称为下标①和下标②交换位置,或者下标②与下标③比较大小。

① 23,②34,③5,④7,⑤56

算法具体步骤是从下标①开始,首先比较下标②,如果下标①数值小于下标②数值,则交换两数位置,如果下标①数值大于下标②数值,则不交换,继续比较下标②和下标③两数,依次类推分别比较下标③和下标④、下标④和下标⑤,比较完毕,最小的数下标③5在右侧最前面,完成第一趟比对,然后依次进行第二趟、第三趟、第N趟比对,直到没有数字进行交换,排序完成。

●第一趟比对

下标①23和下标②34比较大小,下标①23小于下标②34,两数交换位置,交换位置后的数字排列如下:

②34,①23,③5,④7,⑤56

继续比较下标①23和下标③5,因为①23大于③5,因此两数不作交换。

继续比较下标③5和④7,因为下标③5小于④7,因此两数交换位置,交换位置后的数字排列如下:

②34,①23,④7,③5,⑤56

继续比较下标③5和⑤56,因为下标③5小于⑤56,因此两数交换位置,交换位置后的数字排列如下:

②34,①23,④7,⑤56,③5

●第二趟比对

下标②34和下标①23比较大小,下标②34大于下标①23,因此,两数位置不变。

继续比较下标①23和下标④7,因为①23大于④7,因此两数不作交换。

继续比较下标④7和下标⑤56,因为④7小于⑤56,因此两数交换位置,交换位置后的数字排列如下:

② 34,①23,⑤56, ④7, ③5

继续比较下标④7和下标③5,因为④7大于③5,因此两数不作交换。

●第三趟比对

下标②34和下标①23比较大小,下标②34大于下标①23,因此,两数位置不变。

继续比较下标①23和下标⑤56,因为①23小于下标⑤56,因此两数交换位置,交换位置后的数字排列如下:

②34,⑤56,①23,④7,③5

继续比较下标①23和下标④7,因为①23大于下标④7,因此,两数位置不变。

继续比较下标④7和下标③5,因为④7大于下标③5,因此,两数位置不变。

第三趟比对完成后的排序:

②34,⑤56,①23,④7,③5

●第四趟比对

下标②34和下标⑤56比较大小,下标②34小于下标⑤56,因此两数交换位置,交换位置后的数字排列如下:

⑤56, ②34,①23,④7,③5

第四趟首次比对,排序已经完成。

冒泡排序的基本思想就是:从无序序列头部开始,进行两两比较,根据大小交换位置,直到最后将最大(小)的数据元素交换到了无序队列的队尾,从而成为有序序列的一部分;下一次继续这个过程,直到所有数据元素都排好序。

算法的核心在于每次通过两两比较交换位置,选出剩余无序序列里最大(小)的数据元素放到队尾。

【理解队列算法】

队列算法与我们的生活中的排队算法一致,都是先进先出。最先到达的人,最先办理业务(见图1-3)。

图 1-3 队列算法

银行的排队机就是按照队列算法实现的。具体实现算法如下:

1) 创建一个空的队列,队列可以用数组实现。数组是一种数据结构,可以存储多个相同元素。后面我们会介绍数据结构,在学数据结构之前,我们可以把数组想象为顺序排列的无数个格子,每个格子只能放一种同类物品。

2) 插入队列,计算队列元素(每个元素为一个整数,表示排队序号)数量,将元素插入到队列尾部,打印排队序号。

3) 出队:将队列的第一个元素从队列移除,后面元素依次前移,并叫号。

算法是由有限多个步骤组成的,它有下述两个基本特征:每个步骤都明确地规定要执行何种操作;每个步骤都可以被人或机器在有限的时间内完成。算法除了上述两个基本特征外,还要具有第三个基本特征:虽然有些步骤可能被反复执行多次,但是在执行有限多次之后,就一定能够得到问题的解答。

思考一个计算长方形面积的简单问题,要解决这个问题,需执行那些步骤?

要求:接受用户输入的长度和宽度,输入的长度和宽度不能为零,将计算结果显示到显示器上。

免责声明:非本网注明原创的信息,皆为程序自动获取互联网,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责;如此页面有侵犯到您的权益,请给站长发送邮件,并提供相关证明(版权证明、身份证正反面、侵权链接),站长将在收到邮件12小时内删除。

相关阅读

一周热门

查看更多