数组元素逆序的三种方式
- 通过中间变量来交换位置
- 通过两数相加减一个来交换位置
- 将冒泡排序法的条件判断取消
欢迎大佬指点一二
//自定义数组,将数组中的元素进行逆序
public class test02 {
public static void main(String[] args) {
int arr[] = {2, 32, 12,89};
niXu(arr);
printArr(arr);
}
/*
public static void niXu(int arr[]) {
for (int i = 0; i < arr.length / 2; i++) {
int temp = arr[i];
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i]=temp;
}
}
//通过中间变量来交换位置
*/
public static void niXu(int arr[]) {
for (int i = 0; i < arr.length / 2; i++) {
arr[i] = (arr[arr.length-i-1]) + arr[i];
(arr[arr.length-i-1])=arr[i]-(arr[arr.length-i-1]);
arr[i]= arr[i]- (arr[arr.length-i-1]);
}
}
//通过两数相加减一个来交换位置
public static void printArr(int arr[]){
for (int x =0;x<arr.length;x++){
System.out.println(arr[x]);
}
}
}
突然发现将冒泡的if判断注释掉,也可以完成逆序,只是稍微麻烦了点而已.
//. 编写程序,已知数组int[] arr = {43,65,3,6,76},分别数组中所有数据和以及将数值中的元素进行冒泡排序(全部使用方法调用完成)
public class test01 {
public static void main(String[] args) {
int arr[] = {43, 65, 3, 6, 76};
maoPao(arr);
printArr(arr);
}
public static void maoPao(int arr[]) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j =0;j<arr.length-1-i;j++){
//if (arr[j]>arr[j+1]){
arr[j] = arr[j]+arr[j+1];
arr[j+1] = arr[j]-arr[j+1];
arr[j]=arr[j]-arr[j+1];
// }
}
}
}
public static void printArr(int arr[]){
for (int x =0;x<arr.length;x++){
System.out.println(arr[x]);
}
}
}