算法
爱敲代码的super腾
努力敲代码ing。。。。。
展开
-
堆排序--Java实现
堆排序思路: 堆排序可以算是直接选择排序的一种优化的算法,采用了一种独有的堆数据结构对元素进行存储。然后通过这种数据结构的特点不断交换根节点元素与最后一个元素在对剩下的节点进行堆数据结构的重新构建。堆数据结构: 类似于二叉堆的一种数据结构,把元素存储到数组当中以一种完全二叉树的形式进行存储,每个索引为N的父节点N*2为其左孩子N*2+1为其右孩子。并且父节点的值要大于左孩子以及右孩子。堆原创 2016-04-07 11:54:48 · 403 阅读 · 1 评论 -
归并排序---JAVA实现
归并排序思路: 把数组中的每一个元素看做是一个有序表,把相邻的两个表进行归并,组成一个新的有序表并不断以此类推直到最后变成一个有序表。时间复杂度: O(NlogN)空间复杂度: O(N) 因为需要一个临时数组来存储当前归并后的表并最后赋值回来实现思路: 递归实现把当前的数组分割成若一个个单个的元素通过递归的方式想,相当于二分法,分割完之后再对分割完的两个进行归并操作。原创 2016-04-09 17:23:09 · 325 阅读 · 0 评论 -
直接选择排序---JAVA实现
直接选择排序思路:1. 对当前数组进行N-1次轮询2. 每次轮询找出这次轮询中的最小元素3. 让最小元素与当前轮询次数最前面的数进行交换4. 得出排序后的数组时间复杂度: F(N)为 (n*(n-1))/2 f(N)为 n^2 时间复杂度为O(N^2)稳定性: 不稳定的排序 比如 初始数组为 5 4 5 2 6 第一次轮询会交换2与第一个原创 2016-04-06 21:00:39 · 542 阅读 · 0 评论 -
求两字符串的最大相同子串--JAVA实现
啥也不说了 都在代码里了 ^-^package 面试小算法.相同子串;import java.util.ArrayList;import java.util.List;import 面试小算法.Test04;public class Test { /* * 总体思路为:先找出小字符串 外层循环遍历小字符串 内层循环遍历小字符串索引+1的字符串 * 从小字符串中截取(外层原创 2016-04-13 21:21:17 · 513 阅读 · 0 评论 -
基数排序---JAVA实现
基数排序: 基数排序通常用作多关键字排序,比如一副扑克牌既要通过花色进行排序也要通过点数对其进行排序。基数排序分类: 分为高位优先排序和低位优先排序两种时间复杂度 O(d(n+rd))空间复杂度 O(d(n+rd))实现思路: 通过链表的形式来进行实现,原数组存储到主链表中去,每个基数的范围创建一个新的链表,对当前所要比较的位数进行循环比较然后在放入到相应的子链表中去,最原创 2016-04-10 11:22:20 · 502 阅读 · 0 评论 -
大数运算之加法乘法---JAVA实现
常考的算法题 大数加法以及乘法的JAVA版本实现 加法思路: 1. 大数存到数组里 2. 数组进行逆置存储 3. 对位进行加法 判断是否进位 乘法思路: 1. 大数存到数组里 2. 数组进行逆置存储 3. 对位进行相乘 具体看代码 result[i+j]处要思考一下 4. 对相乘后的结果进行进位处理 5.原创 2016-04-05 11:18:40 · 889 阅读 · 0 评论 -
约瑟夫环生者死者游戏(JAVA)
上周日参加一个比赛,在线编程里面有一道就是约瑟夫环的问题,当时脑子转不过来弯集合用的arraylist重复的元素不进行覆盖导致循环一直跳不出来。。。。尼玛当时看了将近2个点好生郁闷。其实这个解决思路很简单,就是构建一个循环链表的数据结构,然后判断要杀死的人中间的间隔,while不断判断就OK了 内容要求: 据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39原创 2016-03-29 11:42:30 · 3959 阅读 · 0 评论 -
线性查找---JAVA实现
常见的三大线性查找: 线性查找 二分查找(折半查找) 分块查找 线性查找思路: 在待查数据中进行顺序性轮询查找,当存在待查的数据时返回当前数据索引位置,如果不存在则返回不存在表示-1,技巧为了增加效率减少主要代码的操作,可以设置一个监视哨在数组的最后一位,这样就可以有效的防止数据越界的比较了只需要比较当前数据是否是所需要的数据就OK了。 平均查找长度:原创 2016-04-28 17:37:24 · 3275 阅读 · 1 评论 -
定位式查找---哈希表
哈希查找 查找的三种主要形式 1. 线性查找 2. 树形查找 3. 定位式查找今天来讨论定位式查找—-哈希查找 哈希查找的主要思想: 通过一个特定的哈希函数对用户插入的内容进行计算得到一个结果,把用户输入的内容存入到这个结果所对应的地址处。当取值查找时同理,也是先进行哈希函数的计算,计算出结果去相应位置取出元素。 要讨论得问题 1. 哈希函数的构建原创 2016-04-30 11:13:12 · 1071 阅读 · 0 评论