快速排序
public static int[] quickSort(int[] list) {
if (ObjectUtils.isEmpty(list)) {
return null;
}
int length = list.length;
for (int i = 0; i < length -1; i++) {
for (int j = i+1; j < length ; j++) {
if (list[i] > list[j]) {
int tem = list[i];
list[i] = list[j];
list[j] = tem;
}
}
}
return list;
}
冒泡排序
public static int[] bubbleSort(int[] list) {
if (ObjectUtils.isEmpty(list)) {
return null;
}
int length = list.length;
for (int i = 0; i < length-1; i++) {
for (int j = 0; j < length - i - 1; j++) {
if (list[j] > list[j+1]) {
int tem = list[j];
list[j] = list[j+1];
list[j+1] = tem;
}
}
}
return list;
}
二分查找
public static int middleSearch(int[] list, int value) {
if (ObjectUtils.isEmpty(list)) {
return -1;
}
int min = 0;
int max = list.length;
int mid = (min + max) / 2;
// 中间值不等于查找值进入循环
while (list[mid] != value) {
if (value > list[mid]) {
min = mid;
}else if(value < list[mid]){
max = mid;
}
mid = (min + max) / 2;
if (min > max) {
return -1;
}
}
return mid;
}