创建数组两种方式:
A:动态创建
B:静态创建
动态创建:数据不明确的情况
格式:
数据类型[] 名称 = new 数据类型[数组长 度/数据个数];
数据类型 名称[] = new 数据类型[数组长度/数据个数];
静态创建:数据明确的情况下
数据类型[] 名称 = new 数据类型[]{元素A,元素B,元素C,...};
数据类型[] 名称 = {元素A,元素B,元素C,...};
常见的操作:
1.遍历
2.最值
3.查找
4.排序
选择排序
//选择排序方法
public static void selectSort(int[] arr){
//排序次数--length-1次
//拿着每一个索引位 i 和 其他索引位进行比较
for(int i=0;i<arr.length-1;i++){
//其他索引位
for(int j=i+1;j<arr.length;j++){
if(arr[i]>arr[j])
swap(arr,i,j);
}
}
}
//换位方法
public static void swap(int[] arr,int x,int y){
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
冒泡排序
//冒泡排序方法
public static void bubbleSort(int[] arr){
//排序次数--length-1次
for(int i=0;i<arr.length-1;i++){//次数
boolean flag = true;//假设有序。
//列出前角标 ,后角标 +1就可以了
for(int j=0;j<arr.length-1-i;j++){
//前后比较
if(arr[j]>arr[j+1]){
swap(arr,j,j+1);
flag = false;
}
}
if(flag)
break;
}
}
插入排序
private static void insertSort(int[] arr) {
for(int index = 1; index<arr.length; index++){//外层向右的index,即作为比较对象的数据的index
int temp = arr[index];//用作比较的数据
int leftindex = index-1;
while(leftindex>=0 && arr[leftindex]>temp){//当比到最左边或者遇到比temp小的数据时,结束循环
arr[leftindex+1] = arr[leftindex];
leftindex--;
}
arr[leftindex+1] = temp;//把temp放到空位上
}
}
//二分查找
public static int binarySearch(int[] arr,int key){
int min = 0;
int max = arr.length-1;
int mid;
while(min<=max){
mid = (min+max)>>1;
if(arr[mid]>key)
max = mid - 1;
else if(arr[mid]<key)
min = mid + 1;
else
return mid;
}
return -1;
}
杨辉三角
//杨辉三角
public static void main(String[] args){
//1.1 创建行。
int[][] yh = new int[10][];
//遍历每行
for(int i=0;i<yh.length;i++){
//每行中存储数据的列数 i+1
yh[i] = new int[i+1];
//填充1的数据
yh[i][0] = 1;//头角标
yh[i][i] = 1;//尾角标
//填充不为1的数据
for(int j=0;j<yh[i].length;j++){
if(i>1 && j>0 && j<i)
yh[i][j] = yh[i-1][j] + yh[i-1][j-1];
}
for(int k=0;k<yh[i].length;k++){
System.out.print(yh[i][k]+"\t");
}
System.out.println();
}
}
//查找某数据在数组中第一次出现的索引位。
public static int getIndex(int[] arr,int key){
for(int index=0;index<arr.length;index++){
if(key==arr[index])
return index;
}
return -1;//代表没找到。
}
//获取数组中的最大值
public static int getMax(int[] arr){
//记录最大值--max
int max = 0;
//计算出最大值
for(int index=0;index<arr.length;index++){
if(arr[index]>max)
max = arr[index];
}
return max;
}
/**
... 数组的简写格式。 可变参数
可变参数放在参数列表最后
*/
public static void printArr(int x,int... arr){
System.out.println(arr.length);
for(int num : arr)
System.out.println(num);
}