![Java常用算法手册(第3版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/106/31729106/b_31729106.jpg)
1.5 一个算法实例
通过前面的介绍,读者可对算法有一个更为清晰的认识。算法是一个抽象的解决问题的方法,需要依托于具体的实现手段才能体现其价值。由于本书重点讨论的是计算机程序设计中的算法,因此这里的实现手段可以狭隘地认为是编程语言,如C、C++、C#、Basic、Java、Pascal等。
在本书中以流行的Java语言为例来介绍各种算法的原理和应用。对于其他编程语言,只要熟悉算法的原理和编程语言的语法特点,只需对代码稍加修改,就可以很方便地进行移植。
明确了编程语言之后,还需要确定编程工具。目前流行的Java语言集成开发环境包括JDK、NetBeans、JBuiler、Eclipse等。本书选用了应用最为广泛的Eclipse集成开发环境,版本为Indigo Release。本书中的所有程序都可以不加修改或者稍加修改便可以在其他集成开发环境中运行。
在正式进入算法讲解之前,本节先带领读者在Eclipse集成开发环境中完成一个简单的算法程序的编写、调试和应用。在后面的章节中,将会直接给出算法的源代码和运行结果,而不会再赘述本节的操作步骤,以便于突出重点。
1.5.1 查找数字
在一个数组中查找数据是经常用到的操作,如在一个班级学生档案集中查找某个学生的记录等。这里将此问题进行简化,程序随机生成一个20个整数数据的数组,然后输入要查找的数据。接着,可以采用最简单的逐个对比的方法进行查找,即顺序查找的方法,这种方法的伪代码示例如下。
![](https://epubservercos.yuewen.com/FCD0C8/17180245404473706/epubprivate/OEBPS/Images/img00020001.jpg?sign=1739281521-YYOpTxsGQZLzRSPUeVQzibFf8zvPV0W9-0-140030650b89d3c4516fde7d34d16376)
上述伪代码仅表示了算法的一个基本流程,并非真正的算法程序代码。但从这里可以看出该程序的基本结构。首先输入待查找的数据,并生成一个随机的数据数组,然后从头到尾对数据进行逐个比较,当数据相等时找到数据,并输出该数据的位置。
下面给出该算法的完整的Java语言代码。
【程序1-1】
![](https://epubservercos.yuewen.com/FCD0C8/17180245404473706/epubprivate/OEBPS/Images/img00020002.jpg?sign=1739281521-ONK1xc6n6b5ODyKOc44k3oiodsrQBK3b-0-24a2f5ee05805e3b5e24ad5466f00ab9)
![](https://epubservercos.yuewen.com/FCD0C8/17180245404473706/epubprivate/OEBPS/Images/img00021001.jpg?sign=1739281521-QETe6ycy5vPE10XYIJfTabL82or3ON5d-0-2a81231431e9b553e7026d2925e707d2)
在该程序中,main()方法生成20个随机数,然后for语句和if语句进行顺序查找。当查找到该数据时,便退出查找,输出该数据的位置;否则输出没找到数据。
1.5.2 创建项目
明确算法程序后,即可在Eclipse集成开发环境中执行该程序。首先,需要创建一个Java项目,并添加一个空的源程序文件供代码编写。主要操作步骤如下:
(1)启动Eclipse集成开发环境。
(2)选择File→New命令,打开New Project对话框,如图1-13所示。
![](https://epubservercos.yuewen.com/FCD0C8/17180245404473706/epubprivate/OEBPS/Images/img00021002.jpg?sign=1739281521-HDIfHCumjT9pSogqCWjWz9blUIG4jTR3-0-faf02a2e15eb6c3050c06f213bb8842d)
图1-13 New Project对话框
(3)在Java节点下选择Java Project选项。
(4)单击Next按钮,在弹出的对话框中的Project name文本框中输入工程名P1,其他采用默认设置,如图1-14所示。
(5)单击Next按钮,此时弹出Java Settings对话框,如图1-15所示。该对话框中列出了创建项目所依赖的系统库等信息。
![](https://epubservercos.yuewen.com/FCD0C8/17180245404473706/epubprivate/OEBPS/Images/img00021003.jpg?sign=1739281521-qoydT3p8YJSeUJJyssPxkoUU00KDbqLW-0-47d78fdb7ff9d405061b0a222d4a0363)
图1-14 输入工程名“P1”
![](https://epubservercos.yuewen.com/FCD0C8/17180245404473706/epubprivate/OEBPS/Images/img00021004.jpg?sign=1739281521-KjEd9eL8ABvBm70wP5XJoBS0fVWt9WOQ-0-389fedcecc829a1abcd0223d7cc020a2)
图1-15 Java Settings对话框
(6)单击Finish按钮,完成项目的建立。此时只是一个空项目,项目中没有任何文件,如图1-16所示。
![](https://epubservercos.yuewen.com/FCD0C8/17180245404473706/epubprivate/OEBPS/Images/img00022001.jpg?sign=1739281521-QwqpzjA9mw2FSys17valaJqgnomu9wPY-0-67ec4c1d97eef33a955dafd281a77d7b)
图1-16 空项目
(7)下面需要在该项目中添加源代码文件。选择File→New→Class命令,打开New Java Class对话框,如图1-17所示。
![](https://epubservercos.yuewen.com/FCD0C8/17180245404473706/epubprivate/OEBPS/Images/img00022002.jpg?sign=1739281521-cYI9tWehWTp7ao7VaVOMAFcKK8sRhMMO-0-b187ec53634ee4ed33c4f87bcd1866f7)
图1-17 New Java Class对话框
(8)在New Java Class对话框的Name文本框中输入源代码文件的名称P1_1,并选择public static void main(String[] args)复选框。
(9)单击Finish按钮,该文件将自动添加到该项目中。
这样,便完成了一个基本Java项目的创建。这里创建的Java文件是一个框架,只需将前面的【程序1-1】输入其中即可。
1.5.3 编译执行
下面需要在Eclipse集成开发环境中对该程序进行编译和运行。编译和运行的操作步骤如下:
(1)Eclipse默认支持自动编译,不需要手动编译。如图1-18所示,确认Build Automatically选项被选中。源代码如果有语法错误,错误行前面会有明显的错误提示标记。
![](https://epubservercos.yuewen.com/FCD0C8/17180245404473706/epubprivate/OEBPS/Images/img00023001.jpg?sign=1739281521-ZtY2wr8qonJVXy6vLsAjJ4wltIPBceRx-0-ec93dc7b002b533e61d380a8d6818bcc)
图1-18 确认Build Automatically选项
(2)运行程序,在文件上右击,在弹出的快捷菜单中选择Run As→Java Application命令,如图1-19所示。
![](https://epubservercos.yuewen.com/FCD0C8/17180245404473706/epubprivate/OEBPS/Images/img00023002.jpg?sign=1739281521-zL4IDi8a3gHDbAEhkSOwKklD4KRXwjug-0-46407c4a9689aa375c8b11bd75b6097f)
图1-19 运行菜单
(3)查看程序执行的结果。程序执行的结果通过Console窗口显示,如图1-20所示。
![](https://epubservercos.yuewen.com/FCD0C8/17180245404473706/epubprivate/OEBPS/Images/img00023003.jpg?sign=1739281521-zWfusXXkiZxHzH22BdHX9AUEe3Uibgt0-0-bbf031d013faf9e6075426c8b2111fbe)
图1-20 执行结果
至此,便完成了在Eclipse集成开发环境中进行Java程序设计的基本步骤。本书中很多例子都可以通过这样的步骤来完成,以后不再赘述。