Java常见算法
一、选择排序
思路:指定要排序的元素在数组中的位置i(一般默认从位置0开始),依次遍历数组,找出其中的最值然后和位置i对应的元素交换。
代码:
public static void selectSort(int arr[]){
for(int x=0; x<arr.length-1; x++){
for(int y=x+1; y<arr.length; y++){
if(arr[x] > arr[y]){
//swap(arr, x, y);
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
二、冒泡排序
思路:两层 for 循环,里层循环中判断相邻两个元素是否逆序,是的话将两个元素交换,外层循环一次,就能将数组中剩下的元素中最小的元素“浮”到最前面
代码:
public static void bubbleSort(int arr[]){
for(int x=0; x<arr.length; x++){
for(int y=0; y<arr.length-1-x; y++){
if(arr[y] > arr[y+1]){
//swap(arr, y, y+1);
temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}
三、折半查找
public static int binbry(int arr[], int key){
int min, max, middle;
min = 0;
max = arr.length - 1;
middle = (min + max) / 2;
while(min <= max){
if(key > arr[middle]){
min = middle + 1;
}else if(key < arr[middle]){
max = middle - 1;
}else{
return middle;
}
}
return -1;
}