根据数组:int[] arr = {1994,1992,1993,1994,1995,1995,1997},分别应用以下几种思想处理数组:
public static void main(String[] args) {
int[] arr = {1994,1992,1993,1994,1995,1995,1997};
System.out.println(arrayToString(arr));
System.out.println("数组的各个数的和为:" + getSum(arr));
System.out.println("数组的各个数的最大值为:" + getMaxValue(arr));
System.out.println("数组的各个数的最小值为:" + getMinValue(arr));
reverseArray(arr);
System.out.println("倒置后: " + arrayToString(arr));
System.out.println("请输入要查找的数:");
Scanner input = new Scanner(System.in);
int num = input.nextInt();
System.out.println(isContainsNum(arr,num)?"数组中含有此数":"数组中不含有此数");
System.out.println("=======");
int index = baiscSearch(arr,num);
System.out.println(baiscSearch(arr,num) != -1?"数组中含有此数" + arr[index]:"数组中不含有此数");
bubbleSort(arr);
System.out.println("冒泡排序后:" + arrayToString(arr));
selectSort(arr);
System.out.println("选择排序后:" + Arrays.toString(arr));
}
public static String arrayToString(int[] arr) {
//数组转化为字符串
//遍历数组的各个数,按照字符串格式拼接
String result = "";
result += "[";
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
result += arr[i];
}else {
result += arr[i] + ",";
}
}
result += "]";
return result;
}
public static int getSum(int[] arr) {
//求和
//遍历数组,提取数字,求和
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
public static int getMaxValue(int[] arr) {
int max = arr[0];
//最大值
//遍历数组,比较相邻两个数,输出较大的那个数
for (int i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
public static int getMinValue(int[] arr) {
int min = arr[0];
//最小值
//遍历数组,比较相邻两个数,输出较小的那个数
for (int i = 0; i < arr.length; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
public static void reverseArray(int[] arr) {
//数组倒置
//遍历数组,轴对称位置的两个数交换,交换次数为 arr/length/2
//利用临时中间变量 int temp
for (int i = 0; i < arr.length/2; i++) {
int temp = 0;
temp = arr[i];
arr[i] = arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = temp;
}
}
public static boolean isContainsNum(int[] arr, int num) {
//数组查找,查数游戏
//默认查找结果为false,即数组中没有要查找的数
boolean flag = false;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == num) {
flag = true;
break;
}else {
}
}
return flag;
}
//===============================================
public static int baiscSearch(int[] arr, int num) {
int index = -1;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == num) {
index = i;
break;
}
}
return index;
}
冒泡排序法:
public static void bubbleSort(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]) {
int temp = 0;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// public static void bubbleSort(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]) { //降序 // // int temp = 0; // temp = arr[j]; // arr[j] = arr[j + 1]; // arr[j + 1] = temp; // } // } // } // }
选择排序法:
public static void selectSort(int[] arr){
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[i]) {
int temp = 0;
temp = arr[j];
arr[i] = arr[j];
arr[i] = temp;
}
}
}