最近像在看闲书一样在看一本<啊哈!算法> 当时在amazon上面闲逛挑书,看到巨多人推荐这本算法书,说深入浅出简单易懂便买来阅读.实际上作者描述算法的能力的确令人佩服.就当复习常用算法吧. 后面会依次纪录一下我觉得有意思的常用算法使用,这次就是快排. 快速排序简介: 快排的中心思想还是二分法,通过partition算法,先将需要排序的数组分为两个部分,再用递归的思想反复这个过程.最后将排序好的最小单元再依次组装起来获得最后的数据.快排的平均时间复杂度是O(nlogN),最糟糕的情况是O(N平方…
接前文,除了广泛使用在快速排序中.Partition算法还可以很容易的实现在无序序列中使用O(n)的时间复杂度查找kth(第k大(小)的数). 同样根据二分的思想,每完成一次Partition我们可以轻松的知道该位置前面有几个比自己小的数,后面有几个比自己大的数(或逆序相反).所以也能知道自己是第几大或者小的数. 查找kth(大/小) func partition(left int, right int, arr []int) (int) { i := left j := right pivot…
本文转载自SSL/TLS协议详解(上):密码套件,哈希,加密,密钥交换算法 导语 作为一名安全爱好者,我一向很喜欢SSL(目前是TLS)的运作原理.理解这个复杂协议的基本原理花了我好几天的时间,但只要你理解了底层的概念和算法,就会感觉整个协议其实很简单.在学习SSL运作原理的过程中,我获益匪浅.回想起在大学期间学到的密码学,那段时间学习它们可是一件很无聊的事.现在,我开始明白老师为什么要让我学习加密的算法,因为密码学可以让我们的生活变得更加轻松.在这里,我想分享我所学到的一切,当然,我希望这对你…
python 排序算法总结及实例详解 这篇文章主要介绍了python排序算法总结及实例详解的相关资料,需要的朋友可以参考下 总结了一下常见集中排序的算法 排序算法总结及实例详解"> 归并排序 归并排序也称合并排序,是分治法的典型应用.分治思想是将每个问题分解成个个小问题,将每个小问题解决,然后合并. 具体的归并排序就是,将一组无序数按n/2递归分解成只有一个元素的子项,一个元素就是已经排好序的了.然后将这些有序的子元素进行合并. 合并的过程就是 对 两个已经排好序的子序列,先选取两个子序列…
来源: http://www.cnblogs.com/JustinYoung/archive/2009/03/24/kaifarenyuangongju.html IE8“开发人员工具”使用详解上(各级菜单详解)   IE8正式版已经发布了.本篇文章不会非常扯蛋地去进行什么评测,然后给出什么“Chrome运行JavaScript能力是IE8的15倍”.什么“IE8页面渲染速度是Safari的2.456倍”.什么“IE8的抗强暴能力比FireFox高出1.235倍” 这样的操蛋的结论.我管谁比谁强…
C++框架_之Qt的窗口部件系统的详解-上 第一部分概述 第一次建立helloworld程序时,曾看到Qt Creator提供的默认基类只有QMainWindow.QWidget和QDialog三种.是的,这三种窗体也是以后用的最多的,QMainWindow是带有菜单栏和工具栏的主窗口类,QDialog是各种对话框的基类,而它们二者全部继承自QWidget.不仅如此,其实所有的窗口部件都继承自QWidget. 第二部分--核心部分 2.1Qt窗口坐标体系 坐标体系 以左上角为原点,X向右增加,Y…
[js高手之路]深入浅出webpack教程系列索引目录: [js高手之路]深入浅出webpack教程系列1-安装与基本打包用法和命令参数 [js高手之路]深入浅出webpack教程系列2-配置文件webpack.config.js详解(上) [js高手之路]深入浅出webpack教程系列3-配置文件webpack.config.js详解(下) [js高手之路]深入浅出webpack教程系列4-插件使用之html-webpack-plugin配置(上) [js高手之路]深入浅出webpack教程系…
SSD(single shot multibox detector)算法及Caffe代码详解 https://blog.csdn.net/u014380165/article/details/72824889 其中caffe中的特殊层的解释 http://caffe.berkeleyvision.org/tutorial/layers.html…
Linux常用命令详解上 目录 一.shell 二.Linux命令 2.1.内部命令与外部命令的区别 2.2.Linux命令行的格式 2.3.编辑Linux命令行的辅助操作 2.4.获得命令帮助的方法 三.配置命令 一.Shell 1. Linux系统中运行的一种特殊程序 2. 在用户和内核之间充当"翻译官",将用户输入的程序语言翻译成计算机可以识别的二进制计算机语言,使用户和内核通信 3. 在用户登录Linux 系统时,自动加载一个Shell程序 4. Bash是Linux系统中默认…
目录 红黑树原理详解及golang实现 二叉查找树 性质 红黑树 性质 operation 红黑树的插入 golang实现 类型定义 leftRotate RightRotate Item Interface insert 完整代码 小结 红黑树原理详解及golang实现 在看红黑树原理之前,先看下二叉查找树. 二叉查找树 二叉查找树,又称二叉排序树,二叉搜索树. 性质 它具备以下性质: 1.左子树上的所有节点均小于它的根节点值. 2.右子树上的所有节点的值均大于它根节点的值. 3.左右子树也分…