- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数组
学习完本章后,你应该知道并掌握:
声明数组
创建数组
数组初始化
数组内存结构
数组的访问
数组的边界
多维数组
数组的排序(冒泡排序、快速排序、递归算法)
数组的检索(二分查找)
Arrays的用法
拷贝数组
概述
数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。在语言中, 这些数组元素可以是基本数据类型或。数组是java编程语言的重要语法,使用数组可以解决很多问题。数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。 由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。快速排序(Quicksort)是对冒泡排序的一种改进它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。递归算法是把问题转化为规模缩小了的同类问题的子问题递归算法是一种直接或者间接地调用自身算法的过程。在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解递归过程一般通过函数或子过程来实现。ArrayTest类,代码如下:
package com.hwadee.train.grammar;
public class ArrayTest {
public static void main(String[] args) {
int a[];
}
}
创建数组
动态创建
a = new int[10];
静态创建
int a[] = {1,4,7,2,5,8,3,6,9};
数组初始化
数组是引用类型,所以在创建过程中依然符合对象创建“四步曲”,所以数组每个单元格都存在默认初始化的过程,初始化的值取决于数组类型。初始化的值在上一章中已经讲过了,在此不再累述。如上例数组类型是整型,所以创建完成后每个单元格的初始值都为0
数组内存结构
图5.4.1基本类型粗数组内存结构
图5.4.2引用类型粗数组内存结构
数组访问
数组的每个单元格都有一个编号,称之为“下标”,Java中数组的下标是从0开始编号,
比如下标为0就对应到数组的第1个单元格,最大可访问的下标是数组的长度-1,因为下标从0开始;
int c_1 = a[0];
……
int c_9 = a[8];
数组边界
int a[] = {1,4,7,2,5,8,3,6,9};
for(int i=0;ia.length;i++) {
System.out.print(a[i] + );
}
就上例可见数组下标的边界是[ 0,length )区间
多维数组
int[][] twoDim = new int[3][4];
二维数组也称为“数组的数组”,通常我们运用二维数组来解决表格数据,比如下表就可以将数据存在二维数组中,然后再对数组进行处理;二维数组的第一维可以理解是“行”,第二维可以理解为“列”
表 5.4.7 规则二维
学号 姓名 科目 成绩 N001 张三 语文 80 N002 李四 语文 90 N003 王五 语文 88 表 5.4.7 不规则二维
个人简历 姓名 身份证 年龄 性别 邮箱 联系电话 家庭地址
public void score(int s[][]) {
//处理二维数组
}
数组长度
twoDim.length返回的第一维的长度
要知道第二维的具体长度可以用
twoDim[0].length
数组的排序
冒泡
package com.hwadee.train.grammar;
public class BubbleSort {
public static void main(String[] args) {
int[] a = { 49, 38, 65, 97, 76, 13, 27 };
sort(a, 0, 6);
for (int val : a) {
System.out.print(val + );
}
}
public static void sort(int[] a, int low, int high) {
if (high==0)return;
for (int i = low; i high; i++) {
if (a[i] a[i + 1]) {
swap(a, i, i +
文档评论(0)