问题描写叙述 一个长度为L(L ≥1) 的升序序列S。处在第 ? L/2 ? 个位置的数称为S的中位数。比如,若序列S1=(11,13,15,17,19)S1=(11,13,15,17,19)。则S1的中位数是15。 两个序列的中位数是含它们全部元素所组成的升序序列的中位数。比如,若S2=(2,4, ...
分类:
其他好文 时间:
2017-07-25 14:24:58
阅读次数:
140
快速排序算法思想: 快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序 ...
分类:
编程语言 时间:
2017-07-23 10:19:18
阅读次数:
191
每一个算法,都是基于很简单的道理,不断地增加条件,限制,让它符合心意。也就没有其他的东西了。KMP:也就是我自己写的一个思路,肯定我讲不清楚,我还没有那么通透,只能记录下我现在的一个思路,而且也没必要测试。直接上代码<?php
//基本KMP算法
//看来真的不能解释..
分类:
编程语言 时间:
2017-07-21 15:54:03
阅读次数:
150
补坑时间到QAQ 好吧今天讲的是网络流建模与二分图匹配。。。 day3的网络流建模好像说的差不多了、(囧) 那就接着补点吧。。 既然昨天讲了建图思想,那今天就讲讲网络流最重要的技巧:拆点。 拆点,顾名思义,就是把一个状态拆成数个点以满足题目要求。 今天主要围绕一个例题来讲:修车。(虽然是丧题,但是却 ...
分类:
其他好文 时间:
2017-07-15 14:54:07
阅读次数:
110
怎么理解 贪心法在解决这个问题的策略上目光短浅,仅仅依据当前已有的信息就做出选择,并且一旦做出了选择。无论将来有什么结果,这个选择都不会改变。 一句话:不求最优,仅仅求可行解。 怎样推断 对于一个详细的问题,怎么知道是否可用贪心算法解此问题,以及是否能得到问题的最优解? 我们能够依据贪心法的2个重要 ...
分类:
编程语言 时间:
2017-07-09 14:45:35
阅读次数:
155
学习了冒泡排序,选择排序,归并排序这些常用的排序,我们发现这些排序的时间复杂度都为O(n^2),算法效率十分低下,接下来我们来学习一种复杂度较低的排序,归并排序。 归并排序是基于分治的算法思想,分治法是将一个大问题分解成多个小问题,解决这些规模较小的问题,再将得到的答案合并,从而得到原来的规模较大的 ...
分类:
编程语言 时间:
2017-07-09 12:24:46
阅读次数:
158
动态规划(DP)是一种解决复杂问题特别是主问题包括反复子问题的经常使用算法思想。它将待求解问题分解成若干子问题,先求解子问题,然后再从子问题中得到原问题的解。不同于分治法,动态规划的子问题经常不是互相独立的,下一阶段的求解建立在上一阶段的解的基础上进行的。 利用动态规划求解问题的有效性 依赖于问题本 ...
分类:
其他好文 时间:
2017-07-03 12:15:01
阅读次数:
158
算法思想:每一趟将一个待排序的记录,按照其关键字的大小插入到有序队列的合适位置里,知道全部插入完成。 设计步骤: 假设有一组无序序列 R0, R1, ... , RN-1。 (1) 我们先将这个序列中下标为 0 的元素视为元素个数为 1 的有序序列。 (2) 然后,我们要依次把 R1, R2, .. ...
分类:
编程语言 时间:
2017-07-02 17:44:46
阅读次数:
186
问题描写叙述 在带头结点的单链表L中。删除全部值为x的结点,并释放其空间,假设值为x的结点不唯一,试编写算法实现以上的操作 算法思想 使用指针p指向数据域为x的结点。使用指针pre指向指针p所指结点的前驱结点,从前向后进行遍历。假设指针p指向的结点的数据域为x,则删除。假设指针p指向的结点的数据域不 ...
分类:
其他好文 时间:
2017-07-02 13:04:03
阅读次数:
143
一、算法思想描写叙述 1、设置一定的步长 2、将整个序列根绝步长分成若干个子序列。对每一个子序列运行直接插入排序 3、反复步骤2。直到步长为1(包括1)二、算法分析 希尔排序,也叫缩小增量排序,是插入排序的一种,他对插入排序进行了一定的优化。 时间复杂度:一般觉得,在某些序列中能够达到O(n^1.3 ...
分类:
编程语言 时间:
2017-06-29 14:29:22
阅读次数:
138