之前较少对算法进行研究,现在开始将会关注。
1、冒泡排序法
/**
* 算法排序 - 冒泡排序
* @param args
*/
public static void main(String[] args) {
/* 冒泡排序 */
int i, j, k;
int[] a = { 48, 26, 78, 52, 49, 80 };
for (i = 0; i < a.length; i++) {
for (j = i + 1; j < a.length; j++) {
if (a[i] > a[j]) {
k = a[j];
a[j] = a[i];
a[i] = k;
}
}
}
// 输出
for (int b = 0; b < a.length; b++) {
System.out.println(a[b]);
}
}
2、二分法查找
又称折半查找,被查找的数组需要已经过排序的。
/**
* 二分法算法
* @author Dwen
* @version v 0.1 2014-3-6 上午10:27:11
*/
public class binaryTest {
/**
*
* @param args
*/
public static void main(String[] args) {
int[] array = {100,101,102,103,104,105,106,107,108,109,120,121,122,123,124,125,126,127,128};
int result = binarySearch(array,123);
System.out.println("数组下标为:"+result);
}
/**
* 二分查找法
* @param array
* @param value
* @return
*/
private static int binarySearch(int[] array,int value){
int count = 0;//统计寻找次数
int left = 0;
int right = array.length - 1;
while(left<=right){
count ++;
int middle = (left + right)/2;
if(value == array[middle]){
System.out.println("共寻找 "+count +" 次!");
return middle;
}else if(value > array[middle]){
left = middle + 1;
}else{
right = middle - 1;
}
}
System.out.println("共寻找 "+count +" 次!");
return -1;
}
}