1.二分查找
没啥好说的 看代码就好
private static int erFenChaZhao(int[] arr, int result){
int min = 0;
int max = arr.length - 1;
while (min <= max) {
int mid = (max + min) / 2;
if (arr[mid] == result){
return mid;
}else if (arr[mid] < result){
min = mid + 1;
}else if (arr[mid] > result){
max = mid - 1;
}
}
return -1;
}
2.冒泡排序
假设待排序数列有n个元素,则只需要进行n-1次排序
每单次排序结束后, 下一次的比较就会少一个数据参与
//从小到大排序
private static int[] maoPaoPaiXv(int[] arr) {
for (int i = arr.length - 1; i > 0; i--) {
for (int j = 0; j+1 <= i; j++){
if (arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
//从大到小排序
private static int[] maoPaoPaiXvFan(int[] arr) {
for (int i = arr.length - 1; i > 0; i--) {
for (int j = 0; j+1 <= i; j++){
if (arr[j] < arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
其实就是拿从小到大冒泡的代码中把最大的放在最右边的部分, 改成了把最小的放在最右边