数据结构--线性结构之数组

本文介绍了数组的基本使用方法,包括定义、创建、属性、遍历、添加和删除元素等,并详细展示了通过创建新数组来实现添加和删除操作的具体步骤。此外,还介绍了二分法查找算法的实现过程。

一、数组Array的基本使用

1. 定义:

数组是一个顺序存储结构
在这里插入图片描述

2. 创建:

2.1 先创建后赋值

//先创建后赋值
int[]arr1 = new int[3];
arr1[0] = 1;
arr1[1] = 2;
arr1[2] = 3;

2.2 创建时同时赋值

//创建时同时赋值
int[]arr1 = new int[]{1,2,3};

3. 属性:

3.1 长度:

创建时必须给出长度
长度一旦创建不可改变

int len = arr1.length;

3.2 快速查看数组中的元素:

Arrays.toString(arr1);

4. 遍历:

for(int j=0; j<arr1.length; j++){
	System.out.println(arr1[j]);
}

5. 添加新元素:

//创建一个新数组
int[]arr2 = new int[arr1.length+1];

//将原数组的值赋值到新数组
for(int j=0; j<arr1.length; j++){
	arr2[j] = arr1[j];
}

//添加新的数值至结尾
arr2[arr1.length] = 6;

//将arr1的指向从原arr1变为arr2的指向
arr1 = arr2;

6. 删除元素:

int[]arr1 = new int[]{9,8,7,6,5,4};

//要删除的元素下标
int del = 3

//创建一个新数组
int[]arr2 = new int[arr1.length-1];

//将原数组的值赋值到新数组
for(int j=0; j<arr1.length; j++){

	//将要删除的元素前面的直接赋值
	if(j < del){
		arr2[j] = arr1[j];
	}
	
    //将要删除的元素后面的直接赋值
    if(j > del){
		arr2[j] = arr1[j+1];
	}
}

//将arr1的指向从原arr1变为arr2的指向
arr1 = arr2;

二、Binary Search二分法查找

int[] arr1 = new int[]{1,2,3,4,5,6,7,8,9};
int begin = 0;
int end = arr1.length - 1;
int mid = (begin + end)/2;   //int会自动取整数部分,而不是四舍五入
int index = -1;
int target = 2;
//不知道会循环多少次时使用true
while(true){
	//没有这个元素
	if(begin > = end){
		return -1;
		(return index;)
	}
	if(arr1[mid] == target){
		index == mid;
		break;
		(return index;)
	} else{
		if(arr1[mid] > target){
			end = mid - 1;
		} else{
			begin = mid + 1;
		}
		mid = (end + begin) / 2;
	}
	System.out.println(index);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值