06 2020 档案
摘要:选择排序: 找到数组中的最小的那个元素,然后将它和数组的第一个元素交换位置(如果第一个就是最小的,那么就和它自己交换位置),然后在剩下的元素中找最小的元素,并且和数组的第二个元素交换位置,依次类推,达到排序的目的。 时间复杂度O(n) = n^2 因为嵌套循环的原因 代码实现如下: 1 packag
阅读全文
摘要:使用递归来实现小球找到终点的过程 主要需要注意:1、使用递归时必须得有一个退出递归的条件,并且递归的不断调用应该使的越来越靠近这个条件,否则就是死循环。 2、由于递归的调用次数很多,则需要遵循谁调用,就把结果返回给谁,然后继续执行。 3、递归不断的在栈中加入方法,如果是死循环则会导致栈溢出的错误。
阅读全文
摘要:后缀表达式的计算,代码如下: 1 package com.pangzi.stucture; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 import java.util.Stack; 6 7 //逆波兰表达式 8 public
阅读全文
摘要:前缀表达式:波兰表达式,运算符位于操作数字之前。 后缀表达式:逆波兰表达式 中缀表达式:一般的数字加减表达式(常见的运算表达式),如:(6+5)*3-4,对应的前缀表达式为 -*+4356 在运算的过程中一般都将中缀表达式转换为后缀表达式来通过计算机求解。 前缀表达式: 从右至左扫描,将数字压栈,然
阅读全文
摘要:主要是通过定义一个数栈和一个符号栈,并根据给出的计算式进行拆分,循环判断是数字还是符号,考虑数字的连续性和符号计算的优先级,具体实现如下: package com.pangzi.stucture; public class calculator { public static void main(S
阅读全文
摘要:栈(Stack):先入后出的有序列表 栈的插入和删除只能在同一端进行,为变化的一端,叫做栈顶,另外一端叫做栈底。 以下为栈的数组实现(Java JDK1.8) //数组实现栈 public class stack { public static void main(String[] args) {
阅读全文
摘要:由于转行的原因,最近打算开始好好学习,昨天看到了部分的LinkedList源码,并且看了一点数据结构的视频,现总结部分自己的心得体会,以供后期给现在的自己拍砖~ 双向链表每一个元素都有数据本身加指向前一个元素的属性与指向后一个元素的属性。 下面对Java中LinkedList部分源码进行个人理解的分
阅读全文