算法与数据结构
算法与数据结构是计算机科学与技术的基础部分,而且也是编程中基础中的基础。这也是为什么公司招聘编程相关人员时普遍问算法与数据结构的原因。但是我们普遍只懂理论,难于实现。我用java去实现大部分的内容,完成对自己的突破。如果能帮助到像我这样的人,那将无比荣幸!
爱做梦真是太好了
开发工程师(java c) 算法工程师
展开
-
排序算法实现
代码为java实现,基于int[]。升序排序 。本文所使用的动态图是维基百科上获取的。 1. 插入排序算法 插入排序,会产生临时数组,空间复杂度与待排序数组元素个数成正比,时间复杂度与n平方成正比。 代码实现:先定义接口: package org.util.sort; /** * 对int类型数组排序 * @author Weibing Long * @since ...原创 2017-01-25 21:09:18 · 365 阅读 · 0 评论 -
查找算法实现
1. 折半查找 使用折半查找的前提是元素已经排序。 代码实现:先定义接口Search package org.util.search; /** * 查找 * @author Weibing Long * @since 2018.04.13 */ public interface Search { boolean search(int[] x, int key); } 然后...原创 2018-04-13 12:32:08 · 244 阅读 · 0 评论 -
基于Java的栈实现
栈的定义 栈是计算机科学中非常基础和重要的一种数据结构,它在计算机相关领域中有着广泛的应用,典型的编程语言中的函数调用,编译器便是采取栈这种结构来组织环境的。数据结构就是数据的组织方式,不同的组织方式,对于集合中元素的选取存在差异。 实现 package org.util.ds; import java.util.Random; /** * 栈 * @author Weibi...原创 2018-04-16 21:57:08 · 2108 阅读 · 0 评论 -
基于java的队列实现
基于单链表的队列实现 package org.util.ds; import java.util.Random; /** * 队列 * @author Weibing Long * @since 2018.04.16 * @param <Item> 泛型 */ public class Queue<Item> { private Node roo...原创 2018-04-17 12:45:16 · 625 阅读 · 0 评论 -
基于java的集合实现
集合类:满足三个基本性质:确定性、互异性和无序性。实现代码满足了这三个性质,但数学中的集合还包括:元素可以为任何可以描述的类型,即元素的类型不需要相同,但代码实现中很难满足这个性质。 代码实现 package org.util.ds; import java.util.Random; /** * 集合类:满足三个基本性质:确定性、互异性和无序性。实现代码满足了这三个性质,但数学中 ...原创 2018-04-17 22:05:33 · 220 阅读 · 0 评论 -
小算法实现
1. 我的日程安排算法实现 问题描述:实现存储日程事件的 MyCalendar类。如果没有重复或者交叉事件,则添加该事件到MyCalendar类实例中。 你的类拥有book(int start, int end)方法. 形式上, 间隔范围为[start, end) 。 重复或者交叉事件为start、end在某个间隔中间,注意:start、end可以等于间隔的后端值。 添加成功,book方法...原创 2018-04-05 22:28:00 · 260 阅读 · 0 评论 -
实现将奇数放在前面,偶数放在中间,其他数放在后面
问题描述:一个数组当中有不同类型的数字,如:奇数、偶数和小数。如何将这些数据整理为奇数放在前面,偶数放在中间,小数放在后面。而且要求尽量节省空间。 package org.leetcode; import java.util.*; /** * leetcode problem * @author Weebing * @since 2018.4.2 */ class Solutio...原创 2018-04-02 22:12:23 · 1133 阅读 · 0 评论 -
罗马数字转化为数值类型
罗马数字都有对应的数值标识,如:VII标识7。 问题描述:给定一个罗马数字,将其转换成整数。返回的结果要求在 1 到 3999 的范围内。 算法核心思想: 1、相同的数字连写,所表示的数等于这些数字相加得到的数,如:Ⅲ = 3; 2、小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数, 如:Ⅷ = 8;Ⅻ = 12; 3、小的数字,(限于Ⅰ、X 和C)在大的数字的左边,所表示的...原创 2018-04-05 13:41:07 · 418 阅读 · 0 评论