算法
zhengx辉
java --> vue --> Android
展开
-
算法-------无重复字符的最长子串
算法-------无重复字符的最长子串题目要求:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例:输入: “sdfaasdrqwed”输出:7注意: 因为无重复字符的最长子串是 “asdrqwe”,所以其长度为 7。分析:最初想法:用双重循环依次取该字符串的所有子串,然后对该字符串进行判断,里面是否有重复字符,如果没有,则放入到set集合,最后,在set集合取最大长度的子串以及长度。import java.util.*;class Solution {原创 2020-11-03 15:39:31 · 123 阅读 · 0 评论 -
冒泡排序算法
基本思想:对比相邻的元素值,如果条件满足就交换元素值,把较小的元素移到前面,大的元素移到后面。 冒泡算法有双层循环实现,其中外层循环用于控制排序轮次,一般要排序的数组长度减一,以为最后一次循环只剩下一个数组元素,不需要对比。内层循环主要用于对比每个临近元素的大小,以确定是否要交换位置,对比和交换次数随排序轮数减少。 实例:public class BubbleSort ...原创 2018-06-13 20:33:29 · 113 阅读 · 0 评论 -
直接选择排序
一.基本思想 将指定排序位置与其他数组元素对比,如果满足条件就交换元素值 与冒泡排序相比,直接选择交换次数少很多,速度要快二.算法演示 每一次从待排序的元素中选出最小或最大的一个元素,顺序的放在已经排好的数列最后 数组 【63 25 34 85 6 47】 第一次排序后:[63 25 34 6 47] 85 第二次排序后:[25 34 6 47] 63 85 第三次排序...原创 2018-06-13 20:54:57 · 151 阅读 · 0 评论 -
反转排序
一.思想 把数组最后一个元素与第一个元素替换,倒数第二个元素与第二个元素替换,以此类推,直到把所有元素反转替换二.算法演示 反转排序是对数组俩边的元素进行替换,所以只需要循环数组长度的半数次 初始数组 [11 22 33 44 55 66] 第一次排序后: 11[22 33 44 55] 66 第二次排序后: 11 22 [33 44 ]55 66 第三次排序后: 11 22 33 4...原创 2018-06-13 21:06:04 · 285 阅读 · 0 评论 -
快速排序法
基本思想: 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。理解: 具体分为三个参数,数组左初始下标left、右初始下标right、以及分割数组的数组成员index;从俩侧同时进行比较,如果第一个数比index大,...原创 2018-11-19 12:24:43 · 146 阅读 · 1 评论 -
栈
概念: 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。基本方法:public interfac...原创 2019-04-03 14:10:57 · 179 阅读 · 0 评论 -
后端数据进行树结构封装
思想:获取数据库List返回集,遍历集合将数据封装到map集合,然后调用工具MenuTreeUtil类的menuList方法实现树结构工具MenuTreeUtil类: 获取父节点menuList方法:遍历数据库返回集,根据pid获取父节点数据,然后调用menuChild方法获取子节点,然后将map集合封装到list集合; 获取子节点menuChild方法:遍历数据库...原创 2019-09-02 14:16:07 · 836 阅读 · 0 评论