冒泡排序
冒泡排序就是让数组中的元素进行两两比较然后进行排序
package guolke.cn;
public class Test_maopao {
public static void sort(int[] arr) {
int n = arr.length;
//对n个元素排序,只需要执行n-1趟
for (int i = 0; i < n - 1; i++) {
//每趟排序都会确定此趟中最高的,上一趟确定的最高的无须参与此趟排序
for (int j = 1; j < n - i; j++) {
if (arr[j - 1] > arr[j]) {
swap(arr, j - 1, j);
}
}
}
}
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
二分法查找
二分查找和我们高中学的二分法查找是一样的,要使用二分法我们先得排序
package game.sc;
/*
* 测试二分法
*/
public class Test_erfenfa {
public static int search(int[] array, int find){
if(array == null){
return -1;
}
int start = 0;
int end = array.length - 1;
int middle = 0;
while(start <= end){
middle = (start + end) / 2;//中间的位置
if(array[middle] == find){//中间值等于要查找的值,直接返回
return middle + 1;
}else if(array[middle] < find){//中间值小于要查找的值,就在中间值后面继续查找
start = middle + 1;
}else{//中间值大于要查找的值,就在中间值前面继续查找
end = middle -1;
}
}
return -1;//未查找到,返回-1
}
}