归并排序基本思想:将两个或两个以上的有序子序列“归并”为一个有序子序列。在内部排序中,通常采用的是2-路归并排序,即将两个位置相邻的有序子序列“归并”为一个有序序列。类似于快排,其使用的也是分治的策略。二路归并排序基本思想:将有n个记录的原始序列看做n个有序子..
分类:
其他好文 时间:
2014-09-30 04:38:12
阅读次数:
191
终于到了经典的快排了,作为20世纪科学和工程领域十大算法之一,自60年代发明以来,一直吸引着一批批工程师和科学家对其改进,今天我们就分析快排算法以及它的几种改进方案。快速排序概述:快速排序算法也是基于分治思想的方案,与归并排序不同的是,它是原地排序,同时可以将长度为N的数组排序所需的时间和NlogN...
分类:
其他好文 时间:
2014-09-29 13:14:30
阅读次数:
181
二面跪 CPU流水线分为几层 fork介绍 TCP与IP的关系 快排代码 二叉树搜索代码 智力题:放硬币 算法设计:二维点阵包含在指定矩行中的点 算法设计:一个升序数组给定区间【a,b】输出数组中区间中的数,数可以重复(...
分类:
其他好文 时间:
2014-09-26 21:06:38
阅读次数:
148
快排的原理是,让一个数作为中间值A,使得左边的数都小于(大于)等于A,右边的数都大于(小于)A。 1 public static void quickSort(Integer[] arrayList,int begin,int end){2 if(begin>=end)...
分类:
其他好文 时间:
2014-09-25 16:16:49
阅读次数:
140
这题 我是在待字闺中看到的 他介绍了一种使用快排排序后 不断进行匹配的算法这边 我用了下map来做 直接用hash数组也可以我觉得 用hash数组的话 存 删都是O(1)完成 map则是log(n)但是使用hash遍历会需要遍历很多无效字符 而map则使用迭代器 方便很多两者各有优劣吧... 、原题...
分类:
其他好文 时间:
2014-09-23 17:04:55
阅读次数:
250
快排采用分治法(Divide and Conquer)把一个list分为两个sub-lists。算法步骤1. 从数列中跳出一个元素,作为基准(pivot)。2. 重新排序数列,所有比基准值小的元素(elements pivot)放在基准值后面,与基准值相等的数可以放在任意一边。此操作即为分区(pa....
分类:
系统相关 时间:
2014-09-22 02:35:51
阅读次数:
203
快排用到了分治思想和递归思想。效率不稳定,平均复杂度在维持在O(n*logn),可见,在n较大时应用较好。#include using namespace std;int a[200] = {564,321,1,2,3,654,21};void quick_sort(int left,int rig...
分类:
其他好文 时间:
2014-09-20 15:27:48
阅读次数:
194
[QQ群: 189191838,对算法和C++感兴趣可以进来]第一个问题,查找出1000万数据中最大的100万条。 对这个问题的第一反应就是利用排序算法,排序有很多种。其中以快排用的最多。只需多次paration得到前100万即可。 还有一种思路就是建立一个100万大小的堆,然后再不断的对进来的.....
分类:
其他好文 时间:
2014-09-18 20:26:54
阅读次数:
240
K&R第五章介绍了用函数指针实现的快速排序算法,对其中的代码比较困惑,所以看了下《算法导论》上对快排的介绍,下面这张图说明了快排的原理及过程:
用C实现上面的过程:
#include
/* declare function pointer */
typedef int(*fp_operation)(int a, int b);
void swap(int *a, int...
分类:
其他好文 时间:
2014-09-17 21:58:12
阅读次数:
320
原文地址:
#include
#include
#include
#include
using std::cout;
using std::endl;
using std::string;
using std::stack;
int arr1[10] = {3,5,2,8,6,1,4,0,9,7};
int arr2[10] = {3,5,2,8,6,1,4,0,9,7};
v...
分类:
其他好文 时间:
2014-09-14 23:44:47
阅读次数:
193