算法设计技巧与分析
文章平均质量分 71
zhouguanya20
专业从事互联网相关技术开发和支持
展开
-
二分查找
令A[low···high]为元素按照升序排列的非空数组,A[mid]为中间元素,假定x>A[mid],注意到如果x在A中,则它必定是在A[mid + 1],A[mid + 2]····A[high]当中的一个,接下来只需要在A[mid+1····high]中搜索x,换句话说,A[low····mid]中的项目在后续的比较中被丢弃掉了。因为根据前面的假定,A按照升序排列,这意味着x不会在A[low原创 2016-11-13 21:03:33 · 324 阅读 · 0 评论 -
合并两个已经排序的表
假定有一个数组A[1····m], p, q, r 为他的三个索引,并且有1 我们使用两个指针s和t,初始化时各自指向A[p]和A[q+1], 再用一个空数组B[p····r]做占存期。每一次比较元素A[s]和A[t], 将较小的元素添加到辅助数组B,如果相同就把A[s]添加进去,然后更新指针,如果A[s] package chapter1;public class M原创 2016-11-13 22:41:23 · 1511 阅读 · 0 评论 -
选择排序
package chapter1;public class SelectionSort { public static void main(String[] args) { int[] arr = { 1, 2, 3, 6, 5, 4, 7, 8, 9, 10, 9, 8, 20, 18, 16, 14, 12, 10 }; int k = 0; for (int i =原创 2016-11-14 23:11:28 · 412 阅读 · 0 评论 -
插入排序
package chapter1;/** * 插入排序 * * 有一个n为数组,对其按照升序排列 * * 方法:从大小为1的子数组A[0]开始排序,因为A[0]就只有一个元素,所以是有序的 * * 接下来,讲A[1]插入到A[0]的前面后者后面,这取决于A[1]与A[0]的大小 * * 继续此过程,将A[i]插入到A[0···i-1]子数组中····· * *原创 2016-11-14 23:14:09 · 312 阅读 · 0 评论