算法
文章平均质量分 76
shyboy_9999
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
两种常见的伪随机数算法
在密码技术中,随机序列是非常重要的,比如密钥产生、数字签名、身份认证和众多的密码学协议等都要用到随机序列。所以产生高质量的随机数序列对信息的安全性具有十分重要的作用。随机数分为真随机数和伪随机数,计算机通过算法产生的随机数并不上真正意义上的随机数,很容易被破解,只能称为伪随机数。若要产生真正的随机数,必须通过硬件来实现,比如使用离子辐射事件的脉冲检测器、气体放电管和带泄露的电...原创 2014-05-02 09:32:34 · 6302 阅读 · 0 评论 -
插入排序
基本思想:插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。简而言之就是将一个数寻找合适的位置插入到已经有序的数组中。基本思想又来,就有相应的具体实现:我们在寻找合适的位置的时候,可以通过逐个比较,也可以通过效率较高的二分查找算法,而逐个查找可以从前往后也可以从后往前进行...原创 2014-04-15 15:38:47 · 111 阅读 · 0 评论 -
归并排序
归并排序是建立在归并操作上的一种有效的算法。该算法是采用分治法的一个非常典型的应用归并排序是一种稳定的排序方法。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并,同理还有多路归并。package org.mino.sort;/** * 归并排序 * @author DingJie */...原创 2014-04-21 16:29:57 · 91 阅读 · 0 评论 -
希尔排序
希尔排序属于插入类排序,是将整个有序序列分割成若干小的子序列分别进行插入排序。先取一个正整数d1<n,把所有序号相隔d1的数组元素放一组,组内进行直接插入排序;然后取d2<d1,重复上述分组和排序操作;直至di=1,即所有记录放进一个组中排序为止。这里的d1,d2称之为增量。 希尔排序是直接插入排序算法的一种改进,减少了其复制的次数,速度要快很多。 原因是,当n值很大时数据的每...原创 2014-04-21 16:37:15 · 96 阅读 · 0 评论 -
快速排序
设要排序的数组A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,基本思想:从数组的末尾选择开始选择有比它小的数都放到它前面,从数组首部选择有比它大的数都放到它后面,直到所有的它将真个数组划分为左右两部分,其中左部小于它,右部大于它,这个过程称为一趟快速排序。 int a[] = { 45, 12, 11, 32, 56, 11, 8, 30, 3 ...原创 2014-04-21 16:46:09 · 105 阅读 · 0 评论 -
堆排序
堆排序主要分两个主要步骤:1、建立最大(最小)堆;2、调整堆。文中主要给出算法,有详细注释,注意由于计算方便,该算法下表为0的数组不能进行排序。package org.mino.sort;/** * 堆排序 * @author DingJie */public class HeapSort { public static void main(Stri...原创 2014-04-21 16:51:49 · 97 阅读 · 0 评论 -
01背包问题
问题描述:给定N中物品和一个背包。物品i的重量是Wi,其价值位Vi ,背包的容量为C。问应该如何选择装入背包的物品,使得转入背包的物品的总价值为最大??在选择物品的时候,对每种物品i只有两种选择,即装入背包或不装入背包。不能讲物品i装入多次,也不能只装入物品的一部分。因此,该问题被称为0-1背包问题。 问题分析:令V(i,j)表示在前i(1<=i<=n)个物品中能...原创 2014-09-15 19:35:31 · 232 阅读 · 0 评论
分享