算法
杨斌_HUST
Greatness can be prepared.
展开
-
二分查找算法
1 定义 折半查找算法也称二分查找算法或折半搜索算法,是一种在有序数组(即前提必须是数组是已经排好序的)中查找某一特定元素的搜索算法。搜素过程是 1)计算中间元素mid 从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束; 2)比较左边元素left, 比较右边元素right 如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而转载 2013-12-27 13:25:36 · 301 阅读 · 0 评论 -
排序(二)快速排序
1 基本思想 排序的基本操作是比较2个数,比如a和b,比较结果只有2种排序情况ab或ba。从比较结果来看(逆向思维),比较结果将空间分为2份,如果每次比较都能完美地二分,即二分后两边的概率是相等(即二分后左右两边处于一个平衡状态),那么对于n个数,每个数找到自己的位置,最终需要的步骤是log(n!)=O(nlogn). 快速排序就是采用这样的思想,每次都二分整个要排序转载 2013-12-27 13:20:44 · 268 阅读 · 0 评论 -
排序(一):简单排序
今天重新看数据结构与算法,对其有了新的认识。首先什么是数据结构呢?什么是数据结构研究的对象呢?下面引用几个概念,希望有助于对数据结构的理解。A data structureis an arrangement of data in a computer’s memory (or sometimes on a disk). Datastructures include arrays, linked l转载 2013-12-27 13:17:15 · 318 阅读 · 0 评论 -
排序(三)希尔排序shellsort
基本思想:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此希尔排序在时间效率上比前两种方法有较大提高。 假如步长为4,排序过程可以看成(0,4,8)(1,5,9)(2,转载 2013-12-27 13:22:47 · 279 阅读 · 0 评论 -
划分算法与TopK问题
1 划分算法思想 划分(partition)就是将数据项分成两组,一组大于某个特定的数据项,而另一组小于某个特定的数据项。在划分算法中,这个特定的数据项叫做枢纽(pivot)。 划分算法的思想是中间线代表枢纽;数据项的左端和右端分别有两个指针(leftPtr和rightPtr); leftPtr从左向右遍历元素,rightPtr从右向左遍历元素,当leftPtr遇到比枢纽元素大的元素时停转载 2013-12-29 23:07:18 · 255 阅读 · 0 评论 -
数据结构之链表(一)单链表
目录 一、常用的4类基本结构 二、单向链表(SimpleLinked List) 1、定义Definition 2、实现Implement with Java language 3、效率Efficiency 一、常用的4类基本结构 数据结构(Data Structure)是指相互之间存在一种或多种特定关系的数据元素的集合,这种数据元素(data element)转载 2013-12-29 23:09:42 · 245 阅读 · 0 评论 -
OpenSSL 1.0.0生成p12、jks、crt等格式证书的命令个过程
OpenSSL 1.0.0生成p12、jks、crt等格式证书的命令个过程 此生成的证书可用于浏览器、java、tomcat、c++等。在此备忘! 1.创建根证私钥 命令: openssl genrsa -out root-key.key 1024 2.创建根证书请求文件 命令: openssl req -new -out root-req.csr -key转载 2014-10-14 21:16:57 · 215 阅读 · 0 评论