数组,排序和查找day(6)

1. 数组

数组的介绍:
    数组可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型。即:数组就是一组数据。
    double[ ] 表示 double类型的数组
  
提示:可以通过 **数组名.length**     得到数组的大小和长度。

2. 数组的使用

方式1:动态初始化

1)数组的定义:

数据类型 数组名[ ] = new 数据类型[大小];

int a[ ] = new int[ 5] ;//创建了一个数组,名字a,存放5个int

这是定义数组的一种方法。

2)数组的引用

数组名[下标/索引/index] 用 来访问数组的元素 (下标是从 0 开始编号的)

方式2:动态初始化

1)先声明数组

语法: 数据类型 数组名[ ];也可以 数据类型[ ] 数组名;

int a[ ] ; 或者 int[ ] a;

2)创建数组

语法:数组名[ ] = new 数据类型[大小];

a[ ] = new int[ 5] ;//分配内存空间,可以存放数据

方式3:静态初始化

1)初始化数组

语法:数据类型 数组名[ ] = {元素值,元素值.....};

创建字符串:

String strs[ ] = new String[ ] {"a","b" };

3.数组使用注意事项和细节

 

 即: 数组的下标/索引 最小0 最大数组长度 -1.

4.数组赋值机制

        数据在默认情况下是引用传递,赋的值是地址,赋值方式为引用赋值。

案例分析:

5.数组拷贝

开辟新的数组空间 int[ ] arr2 = new int[ arr1.length];

                              arr2 = arr1;

                                arr2 地址指向了 arr1 的数据推

6.数组的反转

逆序赋值法

 

7.数组的添加/扩容

实现动态的给数组添加元素效果,实现对数组的扩容。

8.排序的介绍

        排序是将多个数据,依指定的顺序进行排列的过程。

排序的分类:

内部排序法:

指将需要处理的所有数据都加载到内部存储器中进行排序。包括(交换式排序法,选择式排序法和插入式排序法)。

 外部排序法:

数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。包括(合并排序法,直接合并排序法)。

9.冒泡排序法

冒泡排序的基本思想是,通过对待排序序列从后向前(从下标较大的元素开始),依次比较相邻元素的值。若发现逆序则交换,使值较大的元素逐渐从前一项后部,就像水底下的气泡一样逐渐向上冒。

代码:

public class Homework07 {	
	//编写一个main方法
	public static void main (String[] args) {
		//冒泡排序
		int arr[] = {55,44,33,22,11};
		int temp = 0;

		//排序外循环
		for(int i = 0;i < arr.length-1;i++){
			//内循环
			for(int j = 0;j < arr.length-1;j++){
				

				//如果是从大到小,条件是 arr[j] > arr[j + 1]
				//如果是从小到大,条件是 arr[j] < arr[j + 1]
				if(arr[j] > arr[j + 1]){
					temp = arr[j];
					arr[j] = arr[j +1];
					arr[j+1] = temp;
				}
			}

		}
		//遍历
		for(int i = 0;i < arr.length;i++){
			System.out.print(arr[i] + "\t");
		}

	
	}

}

 10.查找

介绍:

在java中,查找有两种:

1)顺序查找

2)二分查找【二分法】

11.多维数组-二维数组

使用方式1:动态初始化

使用方式2:动态初始化

 使用方式3:动态初始化 - 列数不确定

 使用方式4:静态初始化

示意图:

经典案例:杨辉三角

二维数组的使用细节:

课后题:

小技巧

1.注:将字符串的内容比较是否相等

String name = "222";

if( "222".equals(name)  ){ //判断name 是否等于 “222”

}

2.判断有没有成功,可以用索引

int index = -1;//索引

//如果找到了,那index = i;

if(arr[i] >= num){

        index = i;

}

//如果没有找到,那index = -1;

if( index == -1) {     

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值