$a = array(1,5,12,16);$b = array(2,3,15,19,25);$c = array(); $ak = $bk = 0;$countA = count($a); $countB = count($b);$countAB = $countA + $countB;for($...
分类:
编程语言 时间:
2015-01-08 17:01:45
阅读次数:
269
1 #include 2 #include 3 using namespace std; 4 long long ans; 5 void merge(int *a,int le,int mid,int rt){ 6 int *sort_data=(int *)malloc(sizeof(i...
分类:
编程语言 时间:
2014-12-31 18:18:35
阅读次数:
178
在算法导论4.1最大子数组问题中首先提出的是暴力求解方法即计算所有子数组的组合,然后求其和,寻找最大值。这种方法运行时间为Ω(n^2)。然后提出有没有更好的方法。使用分治策略的求解方法:寻找子数组A[low..high]的最大子数组,使用分治技术意味着要将子数组划分为两个规模尽量相等的子数组。也就是...
分类:
编程语言 时间:
2014-12-24 16:06:36
阅读次数:
307
在第四章分治策略(Divider and Conquer)4.1节提出了最大子数组问题。其转化就是求数组a={1, -2, 3, 10, -4, 7 , 2, -5}中连续子数组的最大和。对于这个问题,很容想到一种暴力求解的方法:简单地尝试对所有可能的的组合进行求和。对数组为n存在n*(n-1)/2...
分类:
编程语言 时间:
2014-12-23 12:05:21
阅读次数:
306
经典排序算法 - 归并排序Merge sort
原理,把原始数组分成若干子数组,对每一个子数组进行排序,
继续把子数组与子数组合并,合并后仍然有序,直到全部合并完,形成有序的数组
举例
无序数组[6 2 4 1 5 9]
先看一下每个步骤下的状态,完了再看合并细节
第一步 [6 2 4 1 5 9]原始状态
第二步 [2 6] [1 4] [5 9]两两合并排序,排序细节后边介绍
...
分类:
编程语言 时间:
2014-12-16 13:34:18
阅读次数:
145
经典排序算法 - Strand Sort
Strand sort是思路是这样的,它首先需要一个空的数组用来存放最终的输出结果,给它取个名字叫"有序数组"
然后每次遍历待排数组,得到一个"子有序数组",然后将"子有序数组"与"有序数组"合并排序
重复上述操作直到待排数组为空结束
看例子吧
待排数组[ 6 2 4 1 5 9 ]
第一趟遍历得到"子有序数组"[ 6 9],并将其归并排...
分类:
编程语言 时间:
2014-12-16 13:31:52
阅读次数:
256
题目:请给出一个时间复杂度为nlogn的算法,使之能够在给定一个由n个整数的构成的整合S和另一个整数x时,判断出S中是否存在有两个其和等于x的元素。算法思想:1.先运用合并排序进行排序 O(nlgn),2.然后运用二分查找法寻找y,y = x - a[i],算法的时间复杂度小于nlogn,所以总的时...
分类:
编程语言 时间:
2014-12-13 19:23:22
阅读次数:
279
原文: 一步一步写算法(之合并排序) 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 前面一篇博客提到的快速排序是排序算法中的一种经典算法。和快速排序一样,合并排序是另外一种经常使用的排序算法。那么合并排序算法有什么不同呢?关键之处就体现在这个...
分类:
编程语言 时间:
2014-12-11 10:01:58
阅读次数:
237
本文详细介绍了最大连续子序列之和的5种算法,从低效到高效,从蛮力穷举到分治策略,再到动态规划。还给出了此问题的一个扩展:求j组最大连续子序列之和。内容较多,欢迎关注。...
分类:
编程语言 时间:
2014-12-10 10:54:31
阅读次数:
276
??
使用C++封装一个链表类LinkList。写出相应一个测试用例
链表需要提供
添加
修改删除
除重
合并 排序创建
销毁等接口。
不能调用库函数或者使用STL等类库
题目延伸***********逆置链表**********
LinkNode.h
#ifndef
LINKNOD...
分类:
编程语言 时间:
2014-12-07 01:24:55
阅读次数:
243