排序之——冒泡排序:基本思想:假设待排序表长为N,从后往前(或者从前往后)两两比较相邻元素的值,若为逆序(arr[i-1]>arr[i]),则交换他们,直到序列比较完。这时一趟冒泡。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #de...
分类:
编程语言 时间:
2014-11-13 00:34:35
阅读次数:
266
0-1背包问题0-1背包问题:有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。这个问题的特点是:每种物品只有一件,可以选择放或者不放。算法基本思想:利用动态规划思想 ,子问题为:f[i][v]表示...
分类:
其他好文 时间:
2014-11-12 00:20:33
阅读次数:
300
Dijkstra算法又称单源点距离最短问题设一个图中有V0,V1,V2,V3...等顶点,这里设求的是V0到V1,V2,...的最短距离基本思想V0到剩余顶点的直接距离dist[](不经过其他任何节点,没有联通的设为无穷大)中,找出一个最小的,设其顶点为V1,这里我们就求出了V0到V1的最短距离。将...
分类:
编程语言 时间:
2014-11-12 00:20:15
阅读次数:
273
1.1事件流1.1.1.事件冒泡冒泡技术的基本思想是,事件从发生的目标最内部开始触发,向上触发到最外部(document对象)1.1.2.事件捕获事件捕获与冒泡相反,它的事件触发顺序是从最外层的对象到最里层的对象。事件捕获也可以window级的事件,但是需要开发者显示指定。1.2.3.DOM事件流D...
分类:
编程语言 时间:
2014-11-11 21:06:41
阅读次数:
396
现代的计算机是二进制的,在许多地方都要用到2的幂数,比如4,8,16,32,64,128等这些数字。并且在许多内存分配函数也是以这些数字为值进行分配的。那么如何快速判断一个数是不是2的幂数呢?今天在看内核代码的时候,发现内核中是这样做的,其思想也是非常的简单!基本思想是:十..
分类:
其他好文 时间:
2014-11-11 12:51:35
阅读次数:
252
linux中最常用的输入/输出(I/O)模型是同步I/O。在这个模型中,请求发出后,应用就会阻塞,知道请求满足
为止。但是在某些情况下,I/O请求可能需要与其他的进程进行交叠。可移植操作系统接口(POSIX)异步I/O(AIO)
应用程序接口(API)就提供了这种功能。
AIO基本思想是允许进程发起很多的I/O操作,而不用阻塞或者等待任何操作完成。稍后或在接受到I/O操作完成的
通...
分类:
系统相关 时间:
2014-11-11 10:50:53
阅读次数:
313
2. 交换排序—快速排序(Quick Sort)基本思想:1、选择一个基准元素,通常选择第一个元素或者最后一个元素。2、通过一趟排序将待排序的记录分割成独立的俩部分,其中一部分记录元素值均比基准元素值小,另一部分记录元素的值均大于基准元素值。3、此时基准元素在其排好序后的正确位置。4、然后分别对这俩...
分类:
编程语言 时间:
2014-11-08 15:13:14
阅读次数:
334
1. 交换排序—冒泡排序(Bubble Sort)基本思想:排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的俩个数依次进行比较和调整,让较大的数下沉,较小的数往上冒。即:每当俩相邻的数比较后发现他们的排序与排序的要求相反时,就将他们交换。冒泡排序示例:算法的实现:public cl...
分类:
编程语言 时间:
2014-11-08 09:16:20
阅读次数:
239
快速排序(Quicksort)是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。实现方式一: 1 packag...
分类:
编程语言 时间:
2014-11-08 07:02:26
阅读次数:
183
2. 选择排序—堆排序(Heap Sort)堆排序是一种树形选择排序,是对直接选择排序的有效改进。基本思想:堆的定义如下:具有n个元素的序列(k1,k2,...,kn),当且仅当满足时称之为堆。由堆的定义可以看出,堆顶元素(即第一个元素)为最小项(小顶堆)。若以一维数组存储一个堆,则堆对应一颗完全二...
分类:
编程语言 时间:
2014-11-07 20:44:41
阅读次数:
296