sudo apt-get install golanggccgo安装gcc -v 查看--enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin 如果有一个go,说明你的gcc支持golang,那么就执行...
分类:
其他好文 时间:
2014-07-16 21:33:13
阅读次数:
268
1:快速排序思想:任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。一趟快速排序的算法是:1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;2)以第一个数组元素作为关键数据,赋值给key,即key...
分类:
编程语言 时间:
2014-07-16 19:43:40
阅读次数:
202
记录学习点滴快速排序算法是一种很有趣的算法,短小精悍,性能强劲,对于大部分情况都可以胜任,但对极端环境难以应付。快速排序我理解为:这是一个“以自我为中心的”+“分治法”思想的算法。分治法不必多说,化繁为简,那就是逐个击破。那什么是“以自我为中心”?顾名思义,就是每次都一个“我”,每个人都要围绕“我”...
分类:
其他好文 时间:
2014-07-14 08:25:25
阅读次数:
263
题目描述输入n个整数,输出其中最小的k个。分析与解法解法一要求一个序列中最小的k个数,按照惯有的思维方式,则是先对这个序列从小到大排序,然后输出前面的最小的k个数。至于选取什么的排序方法,我想你可能会第一时间想到快速排序(我们知道,快速排序平均所费时间为n*logn),然后再遍历序列中前k个元素输出...
分类:
其他好文 时间:
2014-07-14 00:03:23
阅读次数:
352
网络数据包的发送分为三种方式,分别是单播、组播、广播。
广播通俗地讲,就是让你的机器发送的数据包可以被同一个网络内的所有主机都接收到。
在讲解如何发送广播包之前,先来看看跟广播有关的知识:
我们都知道IP地址的作用是用来在网络中定位某个网络接口的(没错,准确的讲,IP并不是定位某一台主机)。我们通常见到的IP地址的形式都是如下这样子的:...
分类:
其他好文 时间:
2014-07-13 15:51:40
阅读次数:
174
快速排序是一种分治排序算法。广泛认为它是解决一般问题的最佳排序算法。同插入排序一样,快速排序也属于比较排序的一种,而且不需要额外的存储空间。在处理中到大型数据集时,快速排序是一个比较好的选择。
由于快速排序是一种分治算法,因此可以用分治法的思想将排序分为三个步骤
1.分:设定一个分割值将数据分为两部分。
2.治:分别在两部分用递归的方式继续使用快速排序法。
3.合:对分割部分排序排序直至完...
分类:
其他好文 时间:
2014-07-13 15:35:44
阅读次数:
214
1 #include 2 #include 3 #include 4 using namespace std; 5 6 void swap(int *a, int *b){ 7 int tmp; 8 tmp = *a; 9 *a = *b;10 *b = tmp;...
分类:
其他好文 时间:
2014-07-13 13:11:27
阅读次数:
190
前文介绍了快速排序的单边扫描和双边扫描,但么有做对比,今天来简单分析下。一、单边扫描的缺点 单边扫描最大的缺点是每次都要交换,如果一个数组是 5 4 3 2 1,用单边扫描的话,则从4开始,4要和4交换一次,3要和3交换一次,依次类推,这种无意义的操作。正因此用双边扫描会更好,第一趟只需交换一次,就能得到1 4 3 2 5这样的数组。但双边扫描也是可以进一步优化的。二、双边扫描的优化 优化一:对k...
分类:
其他好文 时间:
2014-07-12 17:39:47
阅读次数:
181
快速排序被公认为是本世纪最重要的算法之一,这已经不是什么新闻了。对很多语言来说是实际系统排序,包括在Java中的Arrays.sort。那么快速排序有什么新进展呢?好吧,就像我刚才提到的那样(Java 7发布两年后)快速排序实现的Arrays.sort被双基准(dual-pivot)排序的一种变体取...
分类:
其他好文 时间:
2014-07-12 13:41:00
阅读次数:
175