摘要: 递归和非递归的二分查找://非递归二分查找算法/*list:待查找的有序数组 *key:需要查找的元素 *n:数组长度 *return:返回查找的位置下标,返回-1表示未找到 */int binarySearch(element list[], element key, int n){ int left =0; int right = n-1; int mid=0; while(left <= right)// <=,不能遗漏等于的情况 { mid=(left+right)/2; if(list[mid] == key) ... 阅读全文
posted @ 2012-07-18 15:23 logzh 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 归并算法的两种方法:1、使用分治法的递归归并算法:/*递归归并排序 *将有二个有序数列list[first...mid]和list[mid+1,...last]合并 *list:待排序数组 *first:子序列1的下界 *mid:子序列1的上界 *last:子序列2的上界 *temp:临时保存数组*/void Merge(element list[], int first, int mid, int last, element temp[]){ int i = first, j = mid + 1; int m = mid, n = last; int k = 0; ... 阅读全文
posted @ 2012-07-18 10:31 logzh 阅读(1061) 评论(0) 推荐(0) 编辑