![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
每天一道算法题
猿哥
这个作者很懒,什么都没留下…
展开
-
有两个有序整数集合a和b,写一个函数找出它们的交集?
方法一: private static Set setMethod(int[] a,int[] b){ Set set = new HashSet(); Set set2 = new HashSet(); for(int i=0; i<a.length; i++) { set.add(a[i]);转载 2016-11-15 18:55:10 · 575 阅读 · 0 评论 -
归并排序
分析:归并操作(merge),也叫归并算法,指的是将两个顺序序列合并成一个顺序序列的方法。如 设有数列{6,202,100,301,38,8,1}初始状态:6,202,100,301,38,8,1第一次归并后:{6,202},{100,301},{8,38},{1},比较次数:3;第二次归并后:{6,100,202,301},{1,8,38},比较次数:4;第三次归并后:{原创 2016-12-05 12:54:57 · 196 阅读 · 0 评论 -
插入排序
代码:A = [1, 10, 5, 9, 3, 4]for i in range(1, len(A)): key = A[i] j = i - 1 while j >= 0 and A[j] > key: A[j+1] = A[j] j -= 1 A[j+1] = key最坏情况运行时间:θ(n^2)平均情况运原创 2016-11-23 20:16:48 · 190 阅读 · 0 评论 -
堆排序
代码:# encoding:utf-8A = [1, 10, 5, 9, 3, 4]heapSize = len(A)# 维持最大堆def maxHeapify(A, i): global heapSize left = 2 * i right = 2 * i + 1 maxValue = A[i - 1] maxIndex = i原创 2016-11-25 15:44:52 · 170 阅读 · 0 评论 -
希尔排序
分析:先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2 =1( …代码:def shell(arr): l = len(arr) h = 1 while h < l: h = 3 * h + 1原创 2016-12-07 23:38:44 · 206 阅读 · 0 评论 -
快速排序
分析:在子数组A[p...r]上, partition维护了4个区域. A[p...r]区间内的所有值都小于等于x, A[i+1...j-1]区间内的所有值都大于x, A[r]=x. 子数组A[j...r-1]中的值可能属于任何一种情况.代码:A = [1, 10, 5, 9, 3, 4]def partation(A, p, r): i = p - 1 for j原创 2016-11-26 13:27:55 · 188 阅读 · 0 评论 -
计数排序
分析:对每一个输入元素x, 确定小于x的元素个数. 利用这一信息, 就可以直接把x放到它在输出数组中的位置上了. 例如, 如果有17个元素小于x, 则x就应该在第18个输出位置上. 当有几个元素相同时, 这一方案要略做修改. 因为不能把它们放在同一个输出位置上. 在计数排序算法的代码中, 假设输入是一个数组A[1...n], A.length=n. 我们还需要两个数组: B[1...n]存放排原创 2016-11-26 16:43:36 · 208 阅读 · 0 评论 -
每天一道算法题(1)——在二元树中找出和为某一值的所有路径
题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。 例如输入整数22 和如下二元树10/ \5 12/ \ 4 7 则打印出两条路径:10, 12 和10, 5, 7。1.思转载 2018-01-28 13:49:15 · 169 阅读 · 0 评论 -
每天一道算法题(1)——在二元树中找出和为某一值的所有路径(java代码)
public class Test{ public static void main(String[] args) { Node node1 = new Node(4, null, null); Node node2 = new Node(7, null, null); Node node3 = new Node(12, null, nul原创 2018-01-28 13:50:26 · 217 阅读 · 0 评论