数组(array)是相同类型变量的集合,可以使用共同的名字引用它。数组可
被定义为任何类型,可以是一维或多维。数组中的一个特别要素是通过下标来访
问它。数组提供了一种将有联系的信息分组的便利方法。
一维数组
一维数组(one ‐dimensional array )实质上是相同类型变量列表。要创建一
个数组,你必须首先定义数组变量所需的类型。通用的一维数组的声明格式是:
type var‐name[ ];
获得一个数组需要2 步。第一步,你必须定义变量所需的类型。第二步,你
必须使用运算符new 来为数组所要存储的数据分配内存,并把它们分配给数组
变量。这样Java 中的数组被动态地分配。如果动态分配的概念对你陌生,别担
心,它将在本书的后面详细讨论。
数组的初始化(array initializer )就是包括在花括号之内用逗号分开的表达
式的列表。逗号分开了数组元素的值。Java 会自动地分配一个足够大的空间来
保存你指定的初始化元素的个数,而不必使用运算符new 。
Java 严格地检查以保证你不会意外地去存储或引用在数组范围以外的值。
Java 的运行系统会检查以确保所有的数组下标都在正确的范围以内(在这方面,Java 与C/C++ 从根本上不同,C/C++ 不提供运行边界检查)。
多维数组
在Java 中,多维数组(multidimensional arrays )实际上是数组的数组。你
可能期望,这些数组形式上和行动上和一般的多维数组一样。然而,你将看到,
有一些微妙的差别。定义多维数组变量要将每个维数放在它们各自的方括号中。
例如,下面语句定义了一个名为twoD 的二维数组变量。
int twoD[][] = new int[4][5];
简单排序
简单排序中包括了:冒泡排序、选择排序、插入排序;
1. 冒泡排序的思想:
假设有N 个数据需要排序,则从第0 个数开始,依次比较第0 和第1 个数据,
如果第0 个大于第1 个则两者交换,否则什么动作都不做,继续比较第 1 个第2
个…,这样依次类推,直至所有数据都“冒泡”到数据顶上。
2. 选择排序的思想:
假设有N 条数据,则暂且标记第 0 个数据为MIN(最小),使用 OUT 标记最左
边未排序的数据,然后使用 IN 标记第1 个数据,依次与 MIN 进行比较,如果比
MIN 小,则将该数据标记为MIN,当第一轮比较完后,最终的MIN 与OUT 标记
数据交换,依次类推;
3. 插入排序的思想:
插入排序是在部分数据有序的情况下,使用OUT 标记第一个无序的数据,将
其提取保存到一个中间变量temp 中去,使用 IN 标记空位置,依次比较 temp 中
的值与IN ‐ 1 的值,如果 IN ‐值大于temp 的值,则后移,直到遇到第一个比 temp
小的值,在其下一个位置插入; |