摘要: 0,算法概述 0.1算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。 线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因 阅读全文
posted @ 2020-08-24 17:23 红尘沙漏 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 0、排序算法说明 0.1 排序的定义 对一序列对象根据某个关键字进行排序。 0.2 术语说明 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 内排序:所有排序操作都在内存中完成; 外排序:由于数据太大,因此把数 阅读全文
posted @ 2020-08-24 17:21 红尘沙漏 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 1.直接插入排序 经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中。 将第一个数和第二个数排序,然后构成一个有序序列 将第三个数插入进去,构成一个新的有序序列。 对第四个数、第五个数……直到最后一个数,重复第二步。 如何写写成代码: 首先设定插入次数,即循环次数,for(int i=1; 阅读全文
posted @ 2020-08-24 17:12 红尘沙漏 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 一、冒泡排序 原理:比较两个相邻的元素,较大的放在右边 N个数字要排序完成,总共进行N-1趟排序,每i趟的排序次数为(N-i)次 最好时间复杂度为O(N) Cmax = N(N-1)/2 = O(N2) Mmax = 3N(N-1)/2 = O(N2) 冒泡排序的最坏时间复杂度为O(N2) 冒泡排序 阅读全文
posted @ 2020-08-24 17:06 红尘沙漏 阅读(492) 评论(0) 推荐(0) 编辑
摘要: 交换排序 冒泡排序 将最后一个元素与倒数第二个元素对比,如果最后一个元素比倒数第二个小,则交换两个元素的位置,再用倒数第二个元素与倒数第三个元数对比,直到比到第一个元素,这样经过第一趟排序后得到第一个最小元素。如此反复几过N(N=length-1)次后可得到排序结果。 Java代码 收藏代码 pac 阅读全文
posted @ 2020-08-24 17:04 红尘沙漏 阅读(376) 评论(0) 推荐(0) 编辑
摘要: /** * 根据租户id获取部门树状结构 * @param tenantId * @return */ @GetMapping("getDeptTreeList") public R getDeptTreeList(String tenantId){ List<Dept>list=deptUserU 阅读全文
posted @ 2020-08-24 13:50 红尘沙漏 阅读(423) 评论(0) 推荐(0) 编辑
摘要: // 将 Map 转换为 实体类 User user = JSON.parseObject(JSON.toJSONString(user01), User.class); System.out.println(user); // 将 实体类 转换为 Map Map map = JSON.parseO 阅读全文
posted @ 2020-08-24 13:45 红尘沙漏 阅读(3078) 评论(0) 推荐(1) 编辑
摘要: public static <T extends IdEntity> List<Map<Object,Object>> EntityConvertMap(List<T> list){ List<Map<Object,Object>> l = new LinkedList<>(); try { for 阅读全文
posted @ 2020-08-24 13:44 红尘沙漏 阅读(6001) 评论(0) 推荐(0) 编辑