首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

容易算法

2012-09-13 
简单算法二分查找 -- 百度百科:http://baike.baidu.com/view/610605.htm?public static int binarySearch(

简单算法

二分查找 -- 百度百科:http://baike.baidu.com/view/610605.htm

?

public static int binarySearch(int[] target,int key){
??int low = 0;
??int high = target.length-1;
??
??while(low <= high){
???int middle = (low + high)/2;
???if(target[middle] == key)
????return middle;
???else if(target[middle] > key)
????high = middle-1;
???else
????low = middle+1;
??}
??return -1;
??
?}

?

?

快速排序 -- http://baike.baidu.com/view/115472.htm

?/**
???? * 快速排序的O(nlogn)
???? * @param target
???? * @param start
???? * @param end
???? */
?public static void quickSort(int[] target, int start, int end) {
??int i, j, key;
??i = start;
??j = end;
??if (i < j) {

??? key = target[start];
???// 从数组两端交替地向中间扫描  
???// 进行扫描的指针i,j;i从左边开始,j从右边开始  
???while (i < j) {
????while (target[j] >= key && i < j)
?????j--;
????target[i] = target[j];// 比枢纽元素小的移动到左边   

????while (target[i] <= key && i < j)
?????i++;
????target[j] = target[i];// 比枢纽元素大的移动到右边   
???}
???target[i] = key;// 枢纽元素移动到正确位置   
???quickSort(target, start, i - 1);// 前半个子表递归排序   
???quickSort(target, i + 1, end);// 后半个子表递归排序   
??}
?}

?

冒泡排序 -- http://baike.baidu.com/view/254413.htm

?

/**
? * 循环比较?? 比较交换O(n^2)
? * @param target
? */
?public static void bubbleSort(int[] target){
??int length = target.length;
??int temp = 0;
??for(int i=0;i<length-1;i++){
???for(int j=0;j<length-i-1;j++){
????if(target[j] > target[j+1]){
?????temp = target[j+1];
?????target[j+1] = target[j];
?????target[j] = temp;
????}
???}
??}
?}

?

选择排序 -- http://baike.baidu.com/view/547263.htm

?

/**
? * 交换次数比冒泡排序少多了,由于交换所需CPU时间比比较所需的CPU时间多,
? * n值较小时,选择排序比冒泡排序快。
? * @param target
? */
?public static void choiseSort(int[] target){
??int length = target.length;
??int temp = 0;
??for(int i=0;i<length-1;i++){
???int pos = i;
???for(int j=i+1;j<length;j++){
????if(target[pos] > target[j]){
?????pos = j;
????}
???}
???temp = target[pos];
???target[pos] = target[i];
???target[i] = temp;
??}
?}

热点排行