排序算法 常用排序算法的特点 常用排序法的时间复杂度和空间复杂度 插入排序(直接插入,希尔排序) 选择排序(‘简单选择排序,堆排序’) 交换排序(冒泡排序,快速排序) 归并排序 基数排序 直接插入排序 首先以第一个数字开始,每次选择,已排序数据中的后面一个数据插入到以排序数据中 希尔排序 跳跃性的选 ...
分类:
编程语言 时间:
2016-09-17 20:33:32
阅读次数:
160
效能分析 原来对于效能分析可能浅显的理解为就是时间复杂度,空间复杂度,代码运行的快不快,但是这次通过对效能分析的使用与理解,明白效能分析,并不是原来的浅显理解。对于java效能分析可用的工具有挺多,自己着重挑了一个工具着重理解,JProfiler它把CPU、执行绪和内存的剖析组合在一个强大的应用中。 ...
分类:
其他好文 时间:
2016-09-14 20:36:44
阅读次数:
227
题目:有1,2,3,..n 的无序整数数组,求排序算法。要求时间复杂度 O(n), 空间复杂度O(1)。 分析:对于一般数组的排序显然 O(n) 是无法完成的。 既然题目这样要求,肯定原先的数组有一定的规律,让人们去寻找一种机会。 例如:原始数组: a = [ 10, 6,9, 5,2, 8,4,7 ...
分类:
编程语言 时间:
2016-09-13 13:03:59
阅读次数:
183
这道题一定要注意总结规律,得到规律如下 N为这个矩阵的阶数,那个arr[i][j]旋转之后的位置是arr[j][N-1-i] 那么这道题如果可以使用额外数组,那么两重循环即可,如果不允许使用缓存矩阵,那么怎么办呢? 如图所示,把这个正方形看成一个洋葱,一层一层看(每一层包括上下左右四个边),第一层先 ...
分类:
其他好文 时间:
2016-09-13 06:43:19
阅读次数:
135
效能分析:之前从来没有用工具测试过程序的性能,以前只对程序的性能在理论上分析过,什么时间复杂度,空间复杂度之类的。只对影响程序性能有很粗浅的认识。认为多重循环层数多了性能低,递归算法性能低。今天我实际用了vs2013的工具看了一下程序的性能。 本来我只有dev c++这种轻量级ide使用,性能分析这 ...
分类:
其他好文 时间:
2016-09-13 01:32:18
阅读次数:
104
排序类别 时间复杂度 空间复杂度 稳定 插入排序 O(n2) 1 √ 尔排序 O(n2) 1 × 冒泡排序 O(n2) 1 √ 选择排序 O(n2) 1 × 快速排序 O(Nlogn)/ O(n2) O(logn) × 堆排序 O(Nlogn) 1 × 归并排序 O(Nlogn) O(n) √ ...
分类:
编程语言 时间:
2016-09-10 11:30:33
阅读次数:
122
有一个长为n的数组A,求满足0≤a≤b<n的A[b]-A[a]的最大值。给定数组A及它的大小n,请返回最大差值。测试样例:[10,5],2返回:0classLongestDistance{
public:
intgetDis(vector<int>A,intn){//时间复杂度O(n)空间复杂度O(1)
//writecodehere
intmaxDiff=0;//初始化最..
分类:
其他好文 时间:
2016-09-09 18:54:03
阅读次数:
296
1.已知数组a前半部分a[0,mid-1],后半部分a[mid,num-1],现前半部分和后半部分均已排好序。要求:实现a数组的从小到大排序。空间复杂度为O(1).voidMergeSort(int*v,constintlen,constintmid)
{
inti,temp;
intleft=0,right=mid;
while(left<right&&right<len)
{
..
分类:
其他好文 时间:
2016-09-09 01:06:03
阅读次数:
129
题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 ...
分类:
编程语言 时间:
2016-09-07 15:50:43
阅读次数:
190
在以前,遇到无限极分类返回一个节点的所有子孙节点时,我都是用递归计算的,后来发现时间复杂度和空间复杂度都太高了,后来自己研究了一下改进了算法. 节点数据如下:键值对分别是自己对应父亲节点 以往算法如下: 然而这样的算法在遇到节点层级非常深的时候会崩溃,例如超过100层,php会报错误的。后来改进了一 ...
分类:
编程语言 时间:
2016-09-05 19:20:41
阅读次数:
115