1.排序数组并二分查找某个元素,返回下标
public static int fun(int[] array,int value) {
int min = 0,max = array.length - 1,mid = (min + max) / 2;
while(array[mid] != value) {
if(array[mid] < value) {
min = mid + 1;
}else if (array[mid] > value){
max = mid - 1;
}
mid = (min + max) / 2;
if(min > max) {
return -1;
}
}
return mid;
}
public static void main(String[] args) {
int[] array = {10,22,34,4,5,93,66,18,42,57};
Arrays.sort(array);
System.out.println(Arrays.toString(array));
System.out.print("输入想要查找的元素:");
Scanner scanner = new Scanner(System.in);
int val = scanner.nextInt();
int i = fun(array,val);
System.out.println("该元素下标为:"+i);
}
2.排序数组并插入某个元素
public static int[] fun2(int[] array,int value){
int[] array2 = new int[array.length+1];
int index = array.length;
for(int i = 0; i < array.length; i++){
if(value < array[i]){
index = i;
break;
}
}
for(int j = array.length; j >= 0; j--){
if(j > index) {
array2[j] = array[j - 1];
}
if(j == index){
array2[index] = value;
}
if(j < index){
array2[j] = array[j];
}
}
System.out.println("插入元素的下标是:" + index);
//System.out.print("插入后的数组是: ");
//System.out.println(Arrays.toString(array));
return array2;
}
public static void main(String[] args) {
int[] array = new int[]{10,22,34,4,5,93,66,18,42,57};
Arrays.sort(array);
System.out.println(Arrays.toString(array));
System.out.print("输入想要插入的元素:");
Scanner scanner = new Scanner(System.in);
int val = scanner.nextInt();
int[] array2 = fun2(array,val);
System.out.print("插入后的数组是: ");
System.out.println(Arrays.toString(array2));
}
3.逆置数组
public static int[] fun3(int[] array) {
for(int i = 0;i < (array.length) / 2;i++){
int j = array.length - 1 - i;
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
return array;
}
public static void main(String[] args) {
int[] array = new int[]{10,22,34,4,5,93,66,18,42,57};
System.out.println(Arrays.toString(array));
fun3(array);
System.out.println(Arrays.toString(array));
}
或者不用返回数组:
public static void fun3(int[] array) {
for(int i = 0;i < (array.length) / 2;i++){
int j = array.length - 1 - i;
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
//return array;
}
public static void main(String[] args) {
int[] array = new int[]{10,22,34,4,5,93,66,18,42,57};
System.out.println(Arrays.toString(array));
fun3(array);
System.out.println(Arrays.toString(array));
}
4.搜索数组中的最大最小元素
public static int funMax(int[] array) {
int max = array[0];
for(int i = 1;i < array.length;i++){
if(array[i] > max){
max = array[i];
}
}
return max;
}
public static int funMin(int[] array) {
int min = array[0];
for(int i = 1;i < array.length;i++){
if(array[i] < min){
min = array[i];
}
}
return min;
}
public static void main(String[] args) {
int[] array = new int[]{10,22,34,4,5,93,66,18,42,57};
System.out.println(Arrays.toString(array));
int a = funMax(array);
System.out.println("数组中的最大元素是:"+a);
int b = funMin(array);
System.out.println("数组中的最小元素是:"+b);
}
5.合并两个数组
public static int[] fun5(int[] array,int[] array2) {
int[] array3 = new int[array.length + array2.length];
for(int i = 0;i < array3.length;i++){
if(i < array.length){
array3[i] = array[i];
}
else{
array3[i] = array2[i - array.length];
}
}
return array3;
}
public static void main(String[] args) {
int[] array = new int[]{10,22,34,4,5,93,66,18,42,57};
System.out.println(Arrays.toString(array));
int[] array2 = new int[]{15,23,30,2,7,96,64,10,48,55};
System.out.println(Arrays.toString(array2));
int[] array3 = fun5(array,array2);
System.out.println("合并后的数组为:");
System.out.println(Arrays.toString(array3));
}
6.判断两个数组是否相等
public static boolean fun6(int[] arr1,int[] arr2) {
if(arr1.length! = arr2.length){
return false;
}
if(arr1.length == arr2.length) {
for (int i = 0; i < arr1.length; i++) {
if(arr1[i] != arr2[i]){
return false;
}
}
return true;
}
return false;
}
public static void main(String[] args) {
int[] array = new int[]{10,22,34,4,5,93,66,18,42,57};
System.out.print("数组1为:");
System.out.println(Arrays.toString(array));
int[] array2 = new int[]{15,23,30,2,7,96,64,10,48,55};
System.out.print("数组2为:");
System.out.println(Arrays.toString(array2));
int[] array3 = new int[]{10,22,34,4,5,93,66,18,42,57};
System.out.print("数组3为:");
System.out.println(Arrays.toString(array3));
System.out.print("数组1和数组2相等:");
boolean flg = fun6(array,array2);
System.out.println(flg);
System.out.print("数组1和数组3相等:");
boolean flg2 = fun6(array,array3);
System.out.println(flg2);
boolean flg3 = Arrays.equals(array,array2);
System.out.println(flg3);
}
7.删除数组指定元素
public static int[] fun7(int[] array,int value) {
int[] array2 = new int[array.length - 1];
int index = array.length;
for(int i = 0; i <array.length; i++){
if(value == array[i]){
index = i;
break;
}
}
for(int j = 0; j <array.length - 1; j++){
if(j < index){
array2[j] = array[j];
}
if(j >= index) {
array2[j] = array[j + 1];
}
}
System.out.println("删除元素的下标是:" + index);
return array2;
}
public static void main(String[] args) {
int[] array = new int[]{10,22,34,4,5,93,66,18,42,57};
// Arrays.sort(array);
System.out.println(Arrays.toString(array));
System.out.print("输入想要删除的元素:");
Scanner scanner = new Scanner(System.in);
int val = scanner.nextInt();
int[] array2 = fun7(array,val);
System.out.print("删除后的数组是: ");
System.out.println(Arrays.toString(array2));
}
8.从数组中查找元素,返回下标
public static int fun8(int[] array,int value) {
int a = -1;
for(int i = 0;i < array.length;i++){
if(array[i] == value){
a = i;
}
}
return a;
}
public static void main(String[] args) {
int[] array = new int[]{10,22,34,4,5,93,66,18,42,57};
System.out.println(Arrays.toString(array));
System.out.print("输入想要查找的元素:");
Scanner scanner = new Scanner(System.in);
int val = scanner.nextInt();
int i = fun8(array,val);
System.out.println("该元素下标为:"+i);
}