数组的介绍
数组动态初始化:int[] arr=new int[5];
数组静态初始化: int[] arr=new int[]{10,20,30,40,50};
数组与排序
数组遍历:for(i=0;i<arr.length-1;i++){}
数组反向遍历:for(i=arr.length-1;i>=0;i–){}
获取数组中元素的最大值与最小值:
for(i=0;i<arr.length-1;i++){
if(arr[i]<max)
max=arr[i]
}
for(i=0;i<arr.length-1;i++){
if(arr[i]>min)
min=arr[i]
}
数组元素的反转:
for(i=0;i<arr.length/2;i++){
int t=arr[i];
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i]=t;
}
二维数组
静态初始化:int[][] arr=new int [][]{{20,20},{20,20},{100,19}};
二维数组遍历:
for(i=0;i<arr.length;i++){
for(j=0;j<arr[i].length;j++){
System.out.println(arr[i][j]);
}
}
二维数组练习:
打印杨辉三角形
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Scanner sc=new Scanner(System.in);
System.out.println(“请输入行数”);
int n =sc.nextInt();
int[][] arr=new int[n][n];
for(i=0;i<arr.length;i++){
arr[i][0]=1;
arr[i][i]=1;
}
for(i=2;i<arr.length;i++){
for(j=1;j<i;j++){
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
}
}
for(i=0;i<arr.length;i++){
for(j=0;j<i;j++){
System.out.println(arr[i][j]+"\t");
}
}
根据元素查索引普通方法
{
int[] arr={10,20,30,40,50};
int index= getIndex(arr,20);
System.out.println(index)
}
private static int getIndex(int[] arr,int n){
for(i=0;i<arr.length;i++){
if(ele==arr[i]){
return i;
}
}
return -1;
}
根据元素查索引二分查找
{
int[] arr={10,20,30,40,50};
int index= getIndex(arr,20);
System.out.println(index)
}
private static int getIndex(int[] arr,int n){
int minIndex=0;
int maxIndex=arr.length-1;
int centerIndex=(minIndex+maxIndex)/2;
while(minIndex<=maxIndex){
if(ele == arr[centerIndex]){
return centerIndex;
}else if(ele>arr[centerIndex]){
minIndex=centerIndex+1;
}else if(ele<arr[centerIndex]){
maxIndex=centerIndex-1;
}
centerIndex=(minIndex+maxIndex)/2;
}
return -1;
}
数组排序
冒牌排序:
int[] arr={24,69,80,57,13};
for(j=0;j<arr.length-1;j++){
for(i=0;i<arr.length-1-j;i++){
if(arr[i]>arr[i+1]){
int t=arr[i];
arr[i]=arr[i+1];
arr[i+1]=t;
}
}
}
选择排序:
int[] arr={24,69,80,57,13};
for(int index=0;index<arr.length-1;index++){
for(i=0;i<arr.length-1-j;i++){
if(arr[index]>arr[i]){
int t=arr[index];
arr[index]=arr[i];
arr[i]=t;
}
}
}
System.out.println(Array.toString(arr));
插入排序:
int[] arr={24,69,80,57,13};
for(j=0;j<arr.length-1;j++){
int i=j;
while(i>0&&arr[i]<arr[i-1]){
int t=arr[i];
arr[i]=arr[i-1];
arr[i-1]=t;
i–;
}
}
希尔排序
快速排序
来源:CSDN
作者:weixin_43490398
链接:https://blog.csdn.net/weixin_43490398/article/details/104247179