java常用的算法:
查找算法:
线性查找:
从第一个记录开始,逐个比较。
public void test(){
String arr[] = new String[]{"aa","bb","cc","ee","tt"};
String str = "ee";
boolean boo = true;
for (int i = 0;i<arr.length;i++){
if (str.equals(arr[i])){
System.out.println("已找到,位置为"+i);
boo = false;
break;
}
}
if (boo){
System.out.println("未找到");
}
}
二分法查找:
对有序数组折半查找。
public void test(){
int arr[] = new int[]{-4,-3,3,4,18,33};
int a = 4;
boolean b = true;
int start = 0;
int end = arr.length-1;
while (start <= end){
int middle = (start+end)/2;
if (a==arr[middle]){
System.out.println("已找到,位置为"+middle);
b = false;
break;
}else if (a<arr[middle]){
end = middle - 1;
}else if (a>arr[middle]){
start = middle + 1;
}
}
if (b){
System.out.println("未找到");
}
}
排序算法:
冒泡排序:
基本思想:对排序序列,依次比较,如果逆序就交换,每次排序得到一个最大值,重复前面的步骤,直到没有任何一对需要比较。
最快:正序。
最慢:反序。
public void bubbleSort(){
int arr[] = new int[]{44,5,-4,3,4,18,-1,33};
for (int i = 0;i< arr.length;i++){
for (int j = 0;j<arr.length-1-i;j++){
if (arr[j]>arr[j+1]){
int swap = arr[j];
arr[j] = arr[j+1];
arr[j+1] = swap;
}
}
}
//System.out.println(Arrays.toString(arr));
}