数组学习笔记

数组的基本要素:

标识符:数组的名称,用于区分不同的数组

数组元素:向数组中存放的数据

元素下标:对数组元素进行编号,从0开始,数组中的每个元素都可以通过下标来访问

元素类型:数组元素的数据类型

数组长度固定不变,避免数组越界

数组中的所有元素必须属于相同的数据类型

数组的使用步骤:

语法:

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

 数组中删除数的格式:

//删除数组中数的格式
public class Q054{
	public static void main(String[]args){
		
		int [] arr = {1,2,3,4,5};
			//删除那个数是由i等于几来决定的 通过下标来决定
		for ( int i=1;i<arr.length-1;i++){
			//数组中的数字是一个一个向前移动的
			arr[i]=arr[i+1];
		}
		//赋值 arr[4]=0
		arr[arr.length-1]=0;
		
		for ( int i=0;i<arr.length;i++){
			System.out.print(arr[i]+" ");
		}
	}
}

随机数组的格式:

//随机数组的格式
import java.util.Random;
public class Q055{
	public static void main (String[]args){
		
		//定义取多少随机数
		int size=10;
		int []arr = new int[size];
		//()里面有数字就是伪随机数
		Random rand = new Random(100);
		for ( int i=0;i<size;i++){
			//随机数字的范围是多少到多少
			arr[i]=rand.nextInt(1000);
		}
		for(int i=0;i<arr.length;i++){
			System.out.print(arr[i]+"---");
		}
	}
	
}	

希尔排序:

//希尔排序
import java.util.Random;
public class Q048{
	public static void main (String[]args){
		
		//定义取多少随机数
		int size=10;
		int []arr = new int[size];
		//()里面有数字就是伪随机数
		Random rand = new Random(100);
		for ( int i=0;i<size;i++){
			//随机数字的范围是多少到多少
			arr[i]=rand.nextInt(1000);
		}
		//获得系统的时间,单位为毫秒。
		long time = System.currentTimeMillis();
		//分组插入
		//首先计算步长 啊让人。length/2; 3 fen[8,1,12] [4,23] [2,344]
		//分组排序[1,8,12] [4,23] [2,344] ==> [1,4,2,8,23,344,12]
		//重新计算新步长 原步长/2 1 ==>
		//计算步长  每次缩短步长一半  直到步长为1 就结束
		for( int jump=arr.length/2;jump>0;jump/=2 ){
			//从每组的第二个数开始//多少组取决于步长
			for( int i=jump;i<arr.length;i++ ){
				//取出每组第二个数
				int value = arr[i];
				//循环 小组中数据排序
				int j;
				//vaiue>arr 就是从大到小   vaiue<arr就是从小到大
				for ( j=i-jump;j>=0 && value>arr[j];j-=jump){
					arr[j+jump]=arr[j];
				}
				arr[j+jump]=value;
				
			}
		}
		for(int i=0;i<arr.length;i++){
			System.out.print(arr[i]+"---");
		}
	}
}

插入排序法:

//插入排序法
public class Q047{
	public static void main (String[]args){
	
		int []arr ={8,4,2,1,23,344,12};
		for(int i=0;i<arr.length-1;i++){
			int curr=arr[i+1];//获取你要判断的那个数字
			for( int j=i;j>=0;j--){
				if( curr<arr[j]){
					arr[j+1]=arr[j];
				}else{
					break;
				}
				arr[j]=curr;
			}
		}
		for(int i=0;i<arr.length;i++){
			System.out.print(arr[i]+"---");
		}
	}
}

冒泡排序法:

import java.util.Random;
public class Q042{
	public static void main (String[]args){
		
		int size=10;
		int []arr = new int[size];
		Random rand = new Random(100);
		for ( int i=0;i<size;i++){
			arr[i]=rand.nextInt(100);
		}
        for ( int row=0;row<arr.length-1;row++){
	        for ( int col=0;col<arr.length-1-row;col++){
				if(arr[col]<arr[col+1]){
					int temp=arr[col];
					arr[col]=arr[col+1];
					arr[col+1]=temp;
				}
			}
		}
    	for(int i=0;i<arr.length;i++){
			System.out.print(arr[i]+"---");
		}
	}
}	

选择排序法:

import java.util.Random;
public class Q042{
	public static void main (String[]args){
		
		int size=10;
		int []arr = new int[size];
		Random rand = new Random(100);
		for ( int i=0;i<size;i++){
			arr[i]=rand.nextInt(100);
		}
        for( int row=0;row<arr.length-1;row++){
				int last=arr.length-1-row;//最后坐标
				int max=0;//初始的一个人是最高的
				for (int col=1;col<arr.length-row;col++){
					if(arr[max]>arr[col]){
						max=col;
					}
				}
				//一轮结束  二位置上的数交换
				if(max!=last){
					int temp=arr[max];
					arr[max]=arr[last];
					arr[last]=temp;
				}
			}
			
		for(int i=0;i<arr.length;i++){
			System.out.print(arr[i]+"---");
		}
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值