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;
}

 

posted @ 2014-04-13 18:10  Self_improve  阅读(297)  评论(0编辑  收藏  举报