240 发简信
IP属地:江苏
  • 28.前中后序查找

    1.前中后序查找思路分析 1.1前序查找 1.2中序查找 1.3后序查找 2.完整代码

  • 27.前中后序遍历

    1.思路分析 前序遍历: 中序遍历: 后序遍历: 2.代码实现 HeroNode 类 二叉树类

  • 120
    26.树

    1.介绍 为什么要有树呢?这是因为数组存在插入和删除效率比较低的缺点,由此提出了链表,但链表还是存在查找效率比较低的问题,因此提出了树。树具有增删改查效率都比较高的特点。 2...

  • 120
    25.HashTable

    1.介绍 HashTable可以使用数组+链表的方式实现,数组中的一个元素就代表一条链表,如下图,共有7条链表。添加元素时通过hash()函数计算这个元素在数组中的位置,也就...

  • 24.二分查找

    1.二分查找介绍 二分查找又叫折半查找,主要思想是在一组已经排好序的数据中,将要查找的值与数组中间元素进行比较,如果相等则找到;如果比中间元素大则在右边查找;如果比中间元素小...

  • 23.基数排序

    1.基数排序介绍 基数排序是将整数按照位数切割成不同的数字,然后按每个位数分别比较。 2.思路分析: 上面的概念还是比较难懂的,通过例子来讲一下。比如一组数据arr={53,...

  • 22.归并排序

    这里直接转载文章【https://www.cnblogs.com/chengxiao/p/6194356.html[https://www.cnblogs.com/cheng...

  • 21.快速排序

    1.快速排序介绍 快速排序是对冒泡排序的改进。基本思想:通过一趟排序将一组数组分成两部分,一部分的元素都比另一部分的元素小,然后按照此方法对两部分数据分别进行快排,最终达到将...

  • 120
    19.希尔排序(交换式)

    1.思路分析 希尔排序总体思想是在直接插入排序的将一组数组采用分组的方式进行排序。具体思路: 第一轮将数据分成arr.length/2组,然后对每组数据使用直接插入排序 第二...

  • 18.直接插入排序

    1.思路分析 将一组数据分为两组,一组为排好序的,一组为未排序的,每次从未排序的数组中选一个元素插入到已排序的数组合适的位置,需要进行数组长度-1次具体实现: 第一轮将第二个...

  • 17.选择排序

    1.思路分析 第一轮,假定第一个元素为最小值,遍历数组直到找到比当前最小值小的元素,得到下标,重新确定最小值 遍历到数组中最后一个元素,找到最小值和下标 与第一个元素交换位置...

  • 120
    16.排序

    1.排序介绍 排序是指将一组数据按照指定规则进行排列的过程。 2.排序分类 内排序:将数据加载到内存中进行排序 外排序:数据量过大无法在内存中进行排序,需要借助外部存储设备进...

  • 120
    15.八皇后问题

    1.八皇后问题介绍 2.思路分析 1.将第一个皇后放在第一行第一列2.将第二个皇后放在第二行第一列,判断与第一个皇后是否冲突,如果冲突,将它放在第二列、第三列......直到...

  • 120
    14.迷宫回溯问题

    1.思路分析: 约定: 0-没走过,1-墙,2-可以走,3-走过但走不通 走的策略:下-右-上-左 步骤: 先判断终点是不是为2,如果为2表明已找到路线,否则判断起点位置是否...

  • 120
    13.递归

    1.递归的应用场景 2.递归的概念 递归就是在方法里自己调用自己,每次传入的参数不同。 3.递归调用机制 当程序执行到一个方法时,就会开辟一个独立的空间(栈) 每个空间的数据...

  • 120
    11.中缀表达式转后缀表达式

    1.思路分析: 1.需要两个栈,一个符号栈和一个中间结果栈2.遍历中缀表达式3.遇到数字,直接入中间结果栈4.遇到运算符 4.1 如果符号栈为空或者栈顶的元素为"(",则将当...

  • 10.逆波兰表达式

    1.思路 1.遍历表达式的逆波兰表达式(后缀表达式)2.如果是数字,直接入栈3.如果是符号,从数字栈中pop出两个数字,进行运算然后将运算结果入栈4.遍历完成,留在栈中的数字...

  • 120
    8.单向循环列表

    1.应用场景 有n个人围成一圈,从第k个人开始(1<=k<=n),数到第m个人出列,再从他的下一个人开始,数到第m个人出列,循环此操作,直到所有人出列。 2.思路分析 2.1...