package qianfeng;
import java.util.Arrays;
/*
静态成员方法的使用
Arrays Java中的数据工具类,集成了大量数组中常用的方法使用类名直接调用
自定义Arrays工具类,所用的方法都要用【类名】来调用
所以 这些方法都是静态方法
作业:
1. 完成工具类的工具扩充 二分法查找 自己实现arrayToString方法
*/
class ArraysTool {
//自定义完成一个排序算法
//bubble
public static boolean bubbleSort(int[] arr) {
//1.参数合法性判断
if (arr == null || arr.length == 0) {
System.out.println("Input Param is invalid!");
return false;
}
boolean flag = true;
//外部循环控制比较的轮次
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 = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = false;
} //if
}// for j
if (flag) {
break;
}
flag = true;
}// for i
return true;
}
//select
public static boolean selectSort(int[] arr) {
//参数合法性判断
if (arr == null || arr.length == 0) {
System.out.println("Input Param is invalid!");
return false;
}
//外层控制遍历找寻最值的轮次
for (int i = 0; i < arr.length - 1; i++) {
int index = i;
//利用遍历找出数组中的最值
for (int j = i + 1; j < arr.length; j++) {
if (arr[index] < arr[j]) {
index = j;
}//if
}//for j
if (index != i) {
int temp = arr[index];
arr[index] = arr[i];
arr[i] = temp;
}
}//for i
return true;
}
}
public class Demo4 {
public static void main(String[] args) {
int[] arr = {1, 3, 5, 7, 9, 2, 4, 6, 8, 10};
Arrays.sort(arr);
String str = Arrays.toString(arr);
System.out.println("str = " + str);
//自定义的工具类, 使用类名直接调用静态方法
// ArraysTool.bubbleSort(arr);
ArraysTool.selectSort(arr);
System.out.println(Arrays.toString(arr));
}
}