第2章 Java编程基础_补充案例 下载本文

博学谷——让IT教学更简单,让IT学习更有效

二、案例实现

定义Example22类,代码如下所示:

public class Example22 { }

public static void main(String[] args) { }

static int getMin (int[] arr) { }

int min = arr[0];

for (int x = 1; x < arr.length; x++) { }

return min ;

if (arr[x] < min ) { }

min= arr[x];

int[] arr = { 4, 1, 6, 3, 9, 8 }; int min = getMin (arr); System.out.println(\

运行结果如图2-24所示。

图2-24 运行结果

三、案例总结

getMin()方法用于求数组中的最小值,该方法中定义了一个临时变量min,用于记住数组的最小值。需要注意的是,在for循环中的变量i是从1开始的,这样写的原因是程序已经假设第一个元素为最小值,for循环中只需要从第二个元素开始比较,从而提高程序的运行效率。

案例2-22 数组排序 一、案例描述

1、 考核知识点

编号:00102027

名称:数组的常见操作-数组的排序

33

博学谷——让IT教学更简单,让IT学习更有效

2、 练习目标

? 掌握一维数组中元素的排序

3、 需求分析

在操作数组时,经常需要对数组中元素进行排序。常用的排序算法有选择排序,冒泡排序等。

请定义一个数组,用选择排序算法将数组中的元素进行从小到大的排序。

4、 设计思路(实现原理)

选择排序法的原理是:首先找到数组中的最值,将最小值(最大值)的下标与第一个元素 的下标交换,再在剩下的元素中找最小值(最大值)的下标与第二个元素的下标交换,以此类推,完成所有元素的排序。

对数组元素进行选择排序的设计思路是:

1) 定义排序方法,在方法中,用for循环嵌套实现排序。第一层循环是从数组的第一个元 素开始循环。第二层循环用于与第一层循环中的元素比较找出最值,并将最小值的下标跟第一个元素的下标进行互换。

2) 为了方便观察排序结果,将案例2-21中的printArr()方法复制到类中,输出排序前和排 序后的数组元素。

二、案例实现

定义Example23类,代码如下所示:

class Example23 {

public static void main(String[] args) { } {

for(int x=0; x

for(int y=x+1; y

34

if(arr[y]

int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp;

int[] arr = {23,87,45,36,56,17}; System.out.println(\排序前\printArray(arr); selectSort(arr); printArray(arr);

System.out.println(\排序后\

public static void selectSort(int[] arr)

博学谷——让IT教学更简单,让IT学习更有效

}

} { }

System.out.print(\

for(int x=0; x

System.out.println(\

if(x==(arr.length-1)) { } else { }

System.out.print(arr[x]+\

System.out.print(arr[x]);

}

public static void printArray(int[] arr)

运行结果如图2-25所示。

图2-25 运行结果

三、案例总结

常用的排序算法除了选择排序外,还有冒泡排序。在冒泡排序的过程中,不断地比较数组中相邻的两个元素,较小者向上浮,较大者往下沉,整个过程和水中气泡上升的原理相似。

接下来通过几个步骤来具体分析一下冒泡排序的整个过程,具体如下:

1、 从第一个元素开始,将相邻的两个元素依次进行比较,直到最后两个元素完成比较。如果前一个 元素比后一个元素大,则交换它们的位置。整个过程完成后,数组中最后一个元素自然就是最大值,这样也就完成了第一轮比较。

2、 除了最后一个元素,将剩余的元素继续进行两两比较,过程与第一步相似,这样就可以将数组中 第二大的数放在了倒数第二个位置。

3、 以此类推,持续对越来越少的元素重复上面的步骤,直到没有任何一对元素需要比较为止。

35