
算法学习(java)
lovelling
这个作者很懒,什么都没留下…
展开
-
算法导论2.1-insertsort算法(插入排序)
这个算法我没有看原理没有看演示图就开始着手写了, 以为自己几年编程经验完成它几乎不会费力气 但是话费了我快一个小时,结果总是不对 后来追bug发现根本就进不去替换位置的分支 开始意识到是我的条件可能用的有问题 所以改了条件结果才实现 做这个需要注意的点就是条件的判断初始化的复制循环的组织细节原谅我的排版public static void main(String[] args)原创 2016-09-29 10:26:49 · 498 阅读 · 0 评论 -
算法导论2.2-2selection-sort(选择排序)
执行过程 - 找到数组中的最小值,与第一个位置互换,1,2,4,5,7,6,3 - 找到s[2…n]中的最小值,与第二个互换位置,1,2,4,5,7,6,3 - 依次类推 - 直到s[n-1,n]排完,只剩一个数无需再排,所以输出数组注意事项 - 只需排序n-1次即可 - 当找到最小值的时候只需记录下下标即可,减省运行时间 - 最后替换位置, - min用于记录最小值原创 2016-09-29 16:44:24 · 378 阅读 · 0 评论 -
算法导论2.3MERGE-SORT(分治或者合并排序算法)
public static void main(String[] args) { int[] s = {3, 2, 4, 5, 7, 6, 1}; //注意下标的选取,用伪代码都需要+1 sort(s,0,6); print(s); } private static void print(int[] s){原创 2016-09-29 22:35:21 · 401 阅读 · 0 评论 -
2.3-3时间复杂度的推导过程
推导过程 n=2 T(2) = 2; n=4 T(4) = 2*T(2)+4 = 8 n=8 T(8) = 2*T(4)+8 = 2*( 2*T(2)+4) + 8 …..递归树表示就是类似于 就是本题的递归树,我就不再这里画了,实在费劲 递归树的总层数为lgn 每层的总消耗为2n 那么T(n)的总消耗为2nlgn 去掉常数即为θ(nlgn)原创 2016-09-30 11:31:40 · 1473 阅读 · 1 评论 -
2.3-4将插入排序写成个递归的排序
//递归的写法 private static void sortdigv(int[] s,int n){ if(n >0){ sortdigv(s,n-1); sort(s,n); } } private static void sort(int[] s,int n){ int k原创 2016-09-30 13:56:05 · 1006 阅读 · 0 评论 -
算法导论2.3-5二分法查找问题
public static void main(String[] args) { int[] s = {3, 2, 4, 5, 7, 6, 1,8}; int getmin = getmin(s, 0, s.length - 1); System.out.println(getmin); } private static int getm原创 2016-09-30 14:41:34 · 377 阅读 · 0 评论 -
461.HammingDistance解题
461.Hamming Distance原创 2017-04-07 18:22:36 · 232 阅读 · 0 评论