两个排序和一个查找封装成了三个方法
/**
* @param arr 冒泡排序数组
* @return 返回一个排完序的数组
*/
public static int[] bubbLing(int[] arr) {
//轮数
for (int i = 0; i < arr.length - 1; i++) {
//比较次数
for (int j = 0; j < arr.length - i - 1; j++) {
//判断当前数 是否比下一个数大
if (arr[j] > arr[j + 1]) {
//声明一个变量记录 下一个值值
int temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
/**
* @param arr 需要排序的数据
* @return 返回一个数组
*/
public static int[] selectSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
/**
* @param arr 二分查找的数组
* @param data 期望查找到的值
* @return 返回查找到的索引
*/
public static int binarySearch(int[] arr, int data) {
//记录左边位置
int left = 0;
//记录右边位置
int right = arr.length - 1;
//定义一个循环折半
while (left <= right) {
//记录中间位置 索引
int middle = (left + right) / 2;
if (data < arr[middle]) {
right = middle - 1;
} else if (data > arr[middle]) {
left = middle + 1;
} else {
return middle;//找到目标索引位置
}
}
return -1;//没找到
}