一.排序的基本概念 排序:将一个数据元素集合或序列重新排列成按一个数据元素某个数据项值有序的序列 稳定排序:排序前和排序后相同元素的位置关系与初始序列位置一致(针对重复元素来说,相对位置不变) 不稳定排序:排序前和排序后相同元素的位置关系与初始序列相比发生改变 排序算法分类: 内部排序:将所有数据加载到内部存储器中完成,待排序序列完全存放在内存中的排序 插入排序:直接插入和希尔排序 选择排序:直接选择排序和堆排序 交换排序:冒泡排序和快速排序 归并排序 分配排序:桶排序,基数排序,计数排序 外部…
一.查找的基本概念 查找分为有序查找和无序查找,这里均以数组为对象,有序查找指的是数组元素有序排列,无序查找指的是数组元素有序或无序排列 平均查找长度(Average Search Length,ASL):和指定查找元素key进行比较的表中数据的个数的期望值 对于含有n个数据元素的查找表,查找成功的平均查找长度为:ASL = Pi*Ci的和. Pi:查找表中第i个数据元素的概率. Ci:找到第i个数据元素时已经比较过的次数. 查找分类:线性查找(顺序查找).二分查找(折半查找).插值查找.斐波那…
一.下载fastjson.jar http://repo1.maven.org/maven2/com/alibaba/fastjson 二.项目添加jar包 Java Build Path 三.导入类 import com.alibaba.fastjson.JSON; 四.转换(这里以集合为例) List<List<String>> listOut = new ArrayList<>(); String jsonList = JSON.toJSONString(list…
本人的愚见,博客是自己积累对外的输出,在学习初期或自己没有多少底料的情况下,与其总结写博客不如默默去搞自己的代码,但是学到集合这一块时,数组,集合,数据结构,算法这个概念搞的我比较混淆,所以不得已写这篇东西. 一,数组,数组和集合是Java中常用到的. 用Java去创建数组: double[] myList; 这时myList 只是代表声明了一个只存放double类型的数组,并没有实体. 要想创建myList的实体,则要给它一个固定的大小,也就是说,数组存放数据的内存是一块连续的区间. myLi…
一.基本认识 1.数据结构与算法的关系? (1)数据结构(data structure): 数据结构指的是 数据与数据 之间的结构关系.比如:数组.队列.哈希.树 等结构. (2)算法: 算法指的是 解决问题的步骤. (3)两者关系: 程序 = 数据结构 + 算法. 解决问题可以有很多种方式,不同的算法实现 会得到不同的结果.正确的数据结构 是 好算法的基础(算法好坏取决于 如何利用合适的数据结构去 处理数据.解决问题). (4)数据结构动态演示地址: https://www.cs.usfca.…
在Java中,实现数组的排序算法有很多,如冒泡排序法.选择排序法.直接插入法和快速排序法等.下面介绍几种排序算法的具体 实现. 本文引用文献:Java必须知道的300个问题. 1.冒泡排序法 1.1 基本思想: 比较待排序的数据元素中的相邻元素:如果前面的元素大于后面的元素,那么将两个元素交换位置:否则不变.即:永远保持大的元素值在待排序元素中的最后面位置.这样,数组元素就像气泡一样从底部上升到顶部. 1.2 过程实例: 每一轮,排序数组的长度减1次(每一轮结束后,最大元素都是最后一个元素.因此…
java中数组: 数组在Java里是一种特殊类型,有别于普通的“类的实例”的对象.但实际数组也是一种对象类型,int[]a = new int[5]  a是在java栈中分配的引用变量,类型是int[] 数组类型,指向在堆里面地址连续的实际数组对象. 在内存中,数组存储在连续的区域内部,因为数组中每个元素的类型相同,则占用的内存大小也一致,所以在访问数组中的元素时可以直接根据数组在内存中的起始位置以及下标来计算元素的位置,因此数组的访问速度很高.数组必须要初始化才能使用,初始化之后JVM会自动分…
目录 数组基础简单回顾 二次封装数组类设计 基本设计 向数组中添加元素 在数组中查询元素和修改元素 数组中的包含.搜索和删除元素 使用泛型使该类更加通用(能够存放 "任意" 数据类型的数据) 升级为动态数组 简单的时间复杂度分析与一些改进 数组基础简单回顾 数组是一种数据结构,用来存储同一类型值的集合. 数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致. 数组是一种引用数据类型. 简单来说,数组就是把需要存储的数据排成一排进行存放. 数组的索引从 0 开始计数,最后一个位置…
集合:集合是java中提供的一种容器,可以用来存储多个数据. 集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型值.集合存储的都是对象.而且对象的类型可以不一致. 在开发中一般当对象多的时候,使用集合进行存储. 集合按照其存储结构可以分为两大类,分别是 单列集合java.util.Collection和双列集合java.util.Map, 综述: 根接 口 Collection Map 子接口 List.Set…
大学刚学编程的时候,有一句很经典的话程序=数据结构+算法 今天有了进一步认识. 场景: 1.当前局面 (1)有现成的封装好的分页组件 返回结果是page.类型为:Page.包括 page 分页信息,data 数据列表 List型. (2)查询了一个数据列表 midResult.类型为 List<Map<String,Object>> . 2.想要的结果 现在想把page midResult 两个结果集进行处理.返回页面. 3.解决问题 首先纠结的是,用哪种类型来存储数据.用List…