随笔分类 -  数据结构与算法

摘要:简单的java加密算法有:BASE64 严格地说,属于编码格式,而非加密算法MD5(Message Digest algorithm 5,信息摘要算法)SHA(Secure Hash Algorithm,安全散列算法)HMAC(Hash Message Authentication Code,散列消... 阅读全文
posted @ 2015-06-22 17:53 偶my耶 阅读(18990) 评论(6) 推荐(6) 编辑
摘要:二叉树(binary)是一种特殊的树。二叉树的每个节点最多只能有2个子节点:二叉树由于二叉树的子节点数目确定,所以可以直接采用上图方式在内存中实现。每个节点有一个左子节点(left children)和右子节点(right children)。左子节点是左子树的根节点,右子节点是右子树的根节点。如果... 阅读全文
posted @ 2015-06-20 18:00 偶my耶 阅读(5332) 评论(0) 推荐(3) 编辑
摘要:桶式排序不再是一种基于比较的排序方法,它是一种比较巧妙的排序方式,但这种排序方式需要待排序的序列满足以下两个特征:待排序列所有的值处于一个可枚举的范围之类;待排序列所在的这个可枚举的范围不应该太大,否则排序开销太大。排序的具体步骤如下:(1)对于这个可枚举范围构建一个buckets数组,用于记录“落... 阅读全文
posted @ 2015-05-22 15:22 偶my耶 阅读(5575) 评论(8) 推荐(0) 编辑
摘要:问题一:==与equal的区别?==和 equals 都是比较的,而前者是运算符,后者则是一个方法,基本数据类型和引用数据类型都可以使用运算符==,而只有引用类型数据才可以使用 equals,下面具体介绍一下两者的用法以及区别.==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内... 阅读全文
posted @ 2015-02-08 20:50 偶my耶 阅读(1516) 评论(2) 推荐(1) 编辑
摘要:java算法应用 阅读全文
posted @ 2015-01-14 23:03 偶my耶 阅读(37567) 评论(4) 推荐(10) 编辑
摘要:发牌规则 黑桃按照从小到大依次为:1-13 红桃按照从小到大依次为:14-26 梅花按照从小到大依次为:27-39 方块按照从小到大依次为:40-52 小王53 大王54代码实现:package com.zsy.study;import java.io.BufferedRea... 阅读全文
posted @ 2015-01-10 12:21 偶my耶 阅读(2700) 评论(0) 推荐(0) 编辑
摘要:输入一个元素,检查数组列表中的每个元素,将其插入到一个已经排好序的数列中的适当位置,使数列依然有序,当最后一个元素放入合适位置时,该数组排序完毕 阅读全文
posted @ 2015-01-09 21:21 偶my耶 阅读(893) 评论(1) 推荐(1) 编辑
摘要:银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。package com.zc.manythread;import javax.swing.JOptionPa... 阅读全文
posted @ 2015-01-07 20:30 偶my耶 阅读(913) 评论(0) 推荐(0) 编辑
摘要:快速排序原理是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 都不小于基准值,如此作为基准的元素调整到排序后的正确位置。递归快速排序,将其他n-1个元素也调整到排序后的正确位置。最后每个元素都是在排序后的正 确位... 阅读全文
posted @ 2015-01-06 12:21 偶my耶 阅读(3912) 评论(0) 推荐(0) 编辑
摘要:循序搜索法 就是一个一个去比较,找到时返回;二元搜索法 二元搜索算法是在排好序的数组中找到特定的元素. 首先, 比较数组中间的元素,如果相同,则返回此元素的指针,表示找到了. 如果不相同, 此函数就会继续搜索其中大小相符的一半,然后继续下去. 如果剩下的数组长度为0, 则表示找不到,那么函数... 阅读全文
posted @ 2015-01-05 18:22 偶my耶 阅读(2484) 评论(0) 推荐(0) 编辑
摘要:归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序... 阅读全文
posted @ 2015-01-04 21:34 偶my耶 阅读(736) 评论(0) 推荐(0) 编辑
摘要:栈和队列的区别: 1.队列先进先出,栈先进后出。 2. 对插入和删除操作的"限定"。 3.遍历数据速度不同。 阅读全文
posted @ 2015-01-03 21:07 偶my耶 阅读(1376) 评论(2) 推荐(0) 编辑
摘要:Shell排序算法的时间复杂度分析比较复杂,实际所需的时间取决于各次排序时增量的个数和增量的取值。研究证明,若增量的取值比较合理,Shell排序算法的时间复杂度约为O(n(ldn)2)。由于Shell排序算法是按增量分组进行的排序,所以Shell排序算法是一种不稳定的排序算法。 阅读全文
posted @ 2015-01-03 13:39 偶my耶 阅读(11195) 评论(1) 推荐(1) 编辑
摘要:双向起泡排序是冒泡排序的升级版,双向起泡排序连够在一次循环中同时取得最大值与最小值,所以用双向冒泡排序的交换的次数减少了,从而达到了优化起泡法的作用。 阅读全文
posted @ 2015-01-02 10:57 偶my耶 阅读(6779) 评论(0) 推荐(0) 编辑
摘要:该方法的基本思想是: 1.先从数列中取出一个数作为基准数。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 3.再对左右区间重复第二步,直到各区间只有一个数。 阅读全文
posted @ 2015-01-01 12:15 偶my耶 阅读(548) 评论(0) 推荐(0) 编辑
摘要:贪心算法的基本思路1.建立数学模型来描述问题。 2.把求解的问题分成若干个子问题。 3.对每一子问题求解,得到子问题的局部最优解。 4.把子问题的解局部最优解合成原来解问题的一个解。 实现该算法的过程: 从问题的某一初始解出发; while 能朝给定总目标前进一步 do 求出可行解的一... 阅读全文
posted @ 2014-12-31 14:12 偶my耶 阅读(687) 评论(0) 推荐(0) 编辑
摘要:冒泡排序算法原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子例子为从小到大排序,代买仅供参考: 1 package com.zc.manythread; 2 ... 阅读全文
posted @ 2014-12-29 12:40 偶my耶 阅读(717) 评论(2) 推荐(0) 编辑

点击右上角即可分享
微信分享提示