数组的基本要素:
标识符:数组的名称,用于区分不同的数组
数组元素:向数组中存放的数据
元素下标:对数组元素进行编号,从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]+"---");
}
}
}