对于一个软件人员来说,算法和数据结构是无法逃避的,越是逃避说明越是需要继续学习和巩固、加深。转载一篇github上有关算法的文章,以便于进行继续学习和理解。当然并不是说非得全部掌握所有算法至少达到需要的时候会找,找到了会使,使完了能明白是什么东西才能更好的进行coding。这篇文章是有关C的 下次再 ...
分类:
编程语言 时间:
2016-11-02 17:42:13
阅读次数:
228
1. 快速排序的思想采用的是分治算法实现,从头选择一个元素是作为“哨兵元素”,然后从尾部开始寻找一个比“哨兵元素“小的元素,然后跟它交换,接着从头开始寻找比“哨兵元素“大的;元素,然后交换,直到“哨兵元素“的左边都“哨兵元素“小,右边都比“哨兵元素“大为止,这算是一次划分,快速排序是要经过的 k-1 ...
分类:
编程语言 时间:
2016-10-15 19:56:58
阅读次数:
219
一直以来只懂冒泡排序,略显得有点low,今天研究了一下java快速排序,对算法的复杂度、大O记法、分治算法等等概念有了一定了解。 public static void main(String[] args) { QuikSortDemo q = new QuikSortDemo(); int[] a ...
分类:
编程语言 时间:
2016-10-12 19:20:47
阅读次数:
213
前言: 分治法是一种算法设计思想,所谓分治,意为分而治之,是指将一个难以直接解决的大问题,递归的分割成一些规模的较小的问题,以便逐个解决。采用分治法设计的算法通常用到递归算法来实现,故标题为递归分治。 归并排序算法 归并就是将两个或两个以上的有序表合并成一个新的有序表。归并排序就是将无序的待排序的序 ...
分类:
编程语言 时间:
2016-09-26 21:29:20
阅读次数:
157
来自:《数据结构与算法分析——C语言描述》练习2.12 一. 最大子序列和 1.穷举法,O(N3) 2.撤一个for,O(N2) 3.分治算法,O(NlogN) 4.联机算法,O(N) 我们仍然采用更优的联机算法来求解最小子序列和、最小正子序列和、最大子序列乘积。 二.最小子序列和 三.最小正子序列 ...
分类:
其他好文 时间:
2016-09-24 23:19:06
阅读次数:
267
题目描述 给出二维平面上的n个点,求其中最近的两个点的距离的一半。 输入包含多组数据,每组数据第一行为n,表示点的个数;接下来n行,每行一个点的坐标。当n为0时表示输入结束,每组数据输出一行,为最近的两个点的距离的一半。 输入样例: 2 0 0 1 1 2 1 1 1 1 3 -1.5 0 0 0 ...
分类:
编程语言 时间:
2016-08-31 20:42:13
阅读次数:
442
Referred from http://blog.csdn.net/yapian8/article/details/28240973 分治算法 一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成 ...
分类:
编程语言 时间:
2016-08-27 23:30:02
阅读次数:
273
本文属作者原创,转载请注明出处 http://www.cnblogs.com/qxred/p/dcalgorithm.html 本系列目录: lanczos算法及C++实现(一)框架及简单实现 lanczos算法及C++实现(二)实对称阵奇异值分解的QR算法 lanczos算法及C++实现(三)实对 ...
分类:
编程语言 时间:
2016-08-27 08:44:25
阅读次数:
305
1、快速排序 又称分治算法,分治的基本思想是蒋原问题分解为若干个规模更小但结构与原问题相似的子问题,然后递归地解决这鞋子问题,子问题的结组合为原问题的解。 快速排序是一种不稳定的算法,平均时间复杂度为O(n log n),最差情况是O(n^2),空间复杂度O(log n) (1)基本思想 过程如下: ...
分类:
编程语言 时间:
2016-08-24 19:16:08
阅读次数:
232
书中用求解最大子序列和的方式介绍了分治算法(divide-and-conquer) 分治算法是一种相对快速的算法 运行时间为O(logN) 最大子序列和的问题如下: 给出一组整数 A1 A2 … AN 求∑jk=i Ak 若所有整数均为负 则最大子序列和为0 e.g. 输入-2, 11,-4, 13 ...
分类:
编程语言 时间:
2016-07-21 22:00:23
阅读次数:
185