基本思想: 1)二分查找的前提是在有序元素列中进行查询,所以取元素列中间的元素array[mid]与要查找的元素比较。 2)如果查找的元素比中间位小(or大),则在中间位的左(or右)半段查找。 3)循环步骤1直到元素列头部与尾部重合 代码实现: 时间复杂度:O(logn) 空间复杂度:递归O(lo ...
分类:
其他好文 时间:
2017-09-23 00:09:18
阅读次数:
98
/** * Project Name:Algorithm * File Name:SingleListMergeSort.java * Package Name: * Date:2017年9月22日上午10:08:46 * Copyright (c) 2017, 2692613726@qq.com ... ...
分类:
编程语言 时间:
2017-09-22 23:56:19
阅读次数:
299
HTML5学堂-码匠:数据快速的计算与排序,与前端页面性能有直接的关系。由于排序的算法有很多,在本次“算法系列”的分享当中,我们先从简单易上手的选择排序法开始,其它的排序算法会随后陆续跟大家一起分享。 ...
分类:
编程语言 时间:
2017-09-22 22:30:11
阅读次数:
187
来源:https://leetcode.com/problems/insertion-sort-list Sort a linked list using insertion sort. 方法: 1. 使用一个preHead指向头节点,这样在将节点插入头节点前面时(即某个节点值比头节点小)不需要进行 ...
分类:
编程语言 时间:
2017-09-19 22:52:54
阅读次数:
153
题解 显然按题意模拟会出现环,因为可能出现的数字数有限的,所以不可能无限的衍生下去。 那么我们就可以按题意模拟,遍历整个过程,统计最大值即可。 判环的环我们想到$hash$,也可以用$STL$中的$set$,但是复杂度高... $Floyd$判圈。一步两步法,有环的话肯定会相遇,空间复杂度可以降到$ ...
分类:
其他好文 时间:
2017-09-19 00:19:39
阅读次数:
115
快速排序,说白了就是快啦,不过有两种实现方式,一种普通,一种In-place,后面的比前面的占用较少空间。 快排用分治法解决。 最佳时间复杂度:O(nlog n) 平均时间复杂度:O(nlog n) 最差时间复杂度:O(n2) 空间复杂度:一般版本O(n),In-place O(log n) ...
分类:
编程语言 时间:
2017-09-16 13:46:38
阅读次数:
161
1.01背包 二维递推式子: 代码: 然而有时候,由于容量或者物品数过多可能导致用二维数组可能超空间,此时可以考虑一维的优化 用f[i]表示当使用了i的容量后最多可以装多少价值的物品,我们可以推出以下代码: 和上面比两段代码时间复杂度相同,而空间复杂度则得变小了许多,注意枚举容量j的时候一定要按倒叙 ...
分类:
编程语言 时间:
2017-09-15 19:08:10
阅读次数:
204
题目描述 Description 有一个送外卖的,他手上有n份订单,他要把n份东西,分别送达n个不同的客户的手上。n个不同的客户分别在1~n个编号的城市中。送外卖的从0号城市出发,然后n个城市都要走一次(一个城市可以走多次),最后还要回到0点(他的单位),请问最短时间是多少。现在已知任意两个城市的直 ...
分类:
其他好文 时间:
2017-09-14 21:48:55
阅读次数:
214
常用的排序算法的时间复杂度和空间复杂度 排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度 冒泡排序 O(n2) O(n2) 稳定 O(1) 快速排序 O(n2) O(n*log2n) 不稳定 O(log2n)~O(n) 选择排序 O(n2) O(n2) 稳定 O(1) 二叉树排序 O(n2) ...
分类:
编程语言 时间:
2017-09-12 09:55:03
阅读次数:
224
把链表右边的 拿过来以此插入到左边的链表 思路: 如果链表长度为N,直接给出时间复杂度为O(N) 额外空间复杂度为O(1)的方法 1 如果链表为空,或者长度为1 不调整 2 链表长度大于1时, 遍历一便找到左半区最后一个节点 记为mid ...
分类:
编程语言 时间:
2017-09-11 21:06:01
阅读次数:
168