JAVA数据结构与算法
机智的胖媳妇
求知若渴,虚心若愚
展开
-
简单排序--插入排序(JAVA)
简单排序分为冒泡排序,选择排序和插入排序。插入排序主要思路:(1)将一个数组分为有序列表和无序列表,左边是有序,右边是无序。(第一次排序开始时,有序列表为数组左边第一个元素,其余为无序列表);(2)每次排序只需要将无序列表的第一个元素插入到有序列表中,并保证插入后的有序列表保持有序。直到无序列表中没有元素。假如有一个整数数组: [ 15, 13, 7, 34, ........]...原创 2019-02-13 16:12:18 · 563 阅读 · 1 评论 -
java 封装数组 手写ArrayList
直接对数组操作时,会遇到以下问题。1.当需要添加元素时,元素已经满了的情况需要对数组进行扩容。2.删除数组中某个元素时,需要移动该元素以后的元素位置。3.没有一些常用的方法,比如说数组中是否包含某个元素,数组是否为空等。4.其他问题于是对数组中的各种操作进行封装,方便调用。java中已经实现了这样的工具类ArrayList,但是我们不知道它是如何实现的,那么现在我们就来重写以下...原创 2019-03-27 18:22:59 · 293 阅读 · 0 评论 -
树 概述
树:一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树。(摘自百度百科)。树中有以下几个概念需要掌握:1.根节点:一棵树有且只有...原创 2019-03-27 18:36:01 · 254 阅读 · 0 评论 -
leetcode502-IPO
题目:假设 力扣(LeetCode)即将开始其 IPO。为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本。 由于资源有限,它只能在 IPO 之前完成最多k个不同的项目。帮助 力扣 设计完成最多k个不同项目后得到最大总资本的方式。给定若干个项目。对于每个项目i,它都有一个纯利润Pi,并且需要最小的资本Ci来启动相应的项目。最初,你有...原创 2019-05-14 11:20:30 · 156 阅读 · 0 评论