您的位置:首页 > 职场人生

黑马程序员:Java数组简介与数组的应用:选择排序、冒泡排序、折半查找

2013-10-18 16:01 549 查看
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------

何为数组:

同一种类型数据的集合,装数据的一个容器。

使用数组的好处:

可以自动给数组中的元素从0开始编号,方便操作这些元素

数组的声明格式

格式1:元素类型[] 数组名 = new 元素类型[元素个数或者数组长度]

格式2:元素类型[] 数组名 = new 元素类型[]{元素1,元素2,元素3...};

数组的长度及默认内存中的值介绍

int[] arr = new int[3]; //长度为3,内存中的值为000

System.out.println(arr[2]); //结果输出0

System.out.println(arr[3]); //超出数组范围。arr数组长度为3,共3个值:arr[0],arr[1],arr[2]; 故arr[3]超出数组范围,但编译时不会出错,执行时才出错。

如何获取数组长度

属性:length

用法:数组名称.length

例: arr[5]; arr.length的值为5

如何获取数组中的值

System.out.println(arr[0]); //获取数组中的第一个值

若输出语句写为 System.out.println(arr); //结果会输出类似[I@de6ced的结果

[表示一维数组,I表示int数组类型 @右边的十六进制值表示数组在内存中的地址。

二维数组小练习

int[] x,y[]; //其实就是int[] x; int[] y[]; 前面是一维数组,后面是二维数组 int[][] y; int y[][];

a. x[0]=y; //错误,二维数组不能赋值给一维数组

b. y[0]=x; //正确,一维数组可以赋值给y[0]这个一维数组

c. y[0][0]=x; //错误,x这个一维数组不能赋值给y[0][0],它是一个具体元素

d. x[0][0]=y; //错误,x是一维数组

e. y[0][0]=x[0]; //正确 元素之间可以赋值。

数组的几个小应用

十进制转化为二进制、八进制、十六进制

对数组进行排序:选择排序、冒泡排序两种方式

class SortDemo
{
public static void main(String[] args)
{
int[] arr1 = {3,4,5,9,1,2,8};
int[] arr2 = {13,14,15,19,11,12,18};
selectSort(arr1);
printArray(arr1);
bubbleSort(arr2);
printArray(arr2);
}
//换行
public static void hr()
{
System.out.println();
}

//数值互换方法
public static void swap(int[] arr, int a, int b)
{
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}

//选择排序方法
public static void selectSort(int[] arr)
{
for (int x=0; x<arr.length-1; x++)
{
for (int y=x+1; y<arr.length-1; y++)
{
if (arr[x] > arr[y])
{
swap(arr,x,y);
}
}
}
}

//冒泡排序方法
public static void bubbleSort(int[] arr)
{
for (int x=0; x<arr.length-1; x++)
{
for (int y=0; y<arr.length-x-1; y++)
{
if (arr[y] > arr[y+1])
{
swap(arr,y,y+1);
}

}
}
}

//打印数组
public static void printArray(int[] arr)
{
for (int x=0; x<arr.length; x++)
{
if (x != arr.length-1)
{
System.out.print(arr[x]+", ");
}
else
System.out.println(arr[x]);
}
}
}


折半查找的两中方式

----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐