随笔分类 -  算法基础

1
算法入门
摘要:线索化 引出 一个问题: 基本介绍 图解 应用 代码实现 package com.company.tree; /** * @Title: 二叉树相关操作 * @Description: * @Author: Uncle Ming * @Date:2017年1月6日 下午2:49:14 * @Vers 阅读全文
posted @ 2021-11-23 21:20 剪水行舟 阅读(61) 评论(0) 推荐(0)
摘要:二叉树 基本介绍 二叉树遍历 图解 代码实现 package com.company.tree; import com.sun.source.tree.IfTree; import com.sun.tools.javac.Main; /** * @Function : * date 2021/5/1 阅读全文
posted @ 2021-11-23 21:19 剪水行舟 阅读(40) 评论(0) 推荐(0)
摘要:顺序存储 代码实现 package com.company.tree; import javax.swing.*; /** * @Function : * date 2021/5/21 - 18:15 * How : */ public class ArrayBinaryTree { public 阅读全文
posted @ 2021-11-23 21:19 剪水行舟 阅读(35) 评论(0) 推荐(0)
摘要:哈希表 基本介绍 哈希表实现 package com.company.hash; import javafx.css.Size; import javax.sound.midi.Soundbank; /** * @Function : * date 2021/5/18 - 16:04 * How : 阅读全文
posted @ 2021-11-23 21:18 剪水行舟 阅读(40) 评论(0) 推荐(0)
摘要:斐波那契搜索 基本介绍 黄歪分割点是指把一条线段分割为两部分,使其中一部分与全长之比等于另一部分与这部分之比。取其前三位数字的近似值是0.618。由于按此比例设计的造型十分美丽,因此称为黄金分割,也称为主外比。这是一-个神奇的数字,会带来意向不大的效果。 斐波那契数列{1,1,2,3,5,8, 13 阅读全文
posted @ 2021-11-23 21:17 剪水行舟 阅读(29) 评论(0) 推荐(0)
摘要:插值查找 算法介绍 插值查找算法类似于二分查找,不同的是插值查找每次从自适应mid处开始查 找。 将折半查找中的求mid索引的公式,low表示左边索引,high表示右边索引. int midIndex = low + (high - low) * (key - arr[|ow])/ (ar[high 阅读全文
posted @ 2021-11-23 21:16 剪水行舟 阅读(58) 评论(0) 推荐(0)
摘要:二分查找 基本思想 一半一半 逐渐逼近 思路 二分查找的思路分析 首先确定该数组的中间的下标 mid= (left + right)/ 2 然后让需要查找的数findVal和arr[mid]比较 2.1 findVal>arr[mid], 说明你要查找的数在mid的右边,因此需要递归的向右查找 2. 阅读全文
posted @ 2021-11-23 21:15 剪水行舟 阅读(122) 评论(0) 推荐(0)
摘要:基数排序 基本介绍 基数排序(radixsort) 属于“分配式排序”( distributionsort) ,又称“桶 子法”( bucket sort)或binsort, 顾名思义,它是通过键值的各个位的值, 将要排序的元素分配至某些"桶”中,达到排序的作用 基数排序法是属于稳定性的排序,基数排 阅读全文
posted @ 2021-11-23 21:14 剪水行舟 阅读(59) 评论(0) 推荐(0)
摘要:归并排序 基本思想 ​ 归并排序(MERGE SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer) 策略(分治法将问题分(divide)成一些小的 问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案”修补”在一起,即分而治之)。、 阅读全文
posted @ 2021-11-23 21:13 剪水行舟 阅读(84) 评论(0) 推荐(0)
摘要:交换式希尔排序 基本思想 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序; 随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰 被分成一组,算法便终止 图解 代码实现 分步推导 //希尔第一轮排序 //将10和数据分为五组 for (int i = 5; i 阅读全文
posted @ 2021-11-23 21:12 剪水行舟 阅读(46) 评论(0) 推荐(0)
摘要:快速排序 基本思想 快速排序(Quicksort) 是对冒泡排序的一种改进。基本思想是:通过一趟排序,将要排序的数据分割成独立的两部分,其中一部分的所有 数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列 挖坑填数 阅读全文
posted @ 2021-11-23 21:12 剪水行舟 阅读(64) 评论(0) 推荐(0)
摘要:插入排序 基本思想 插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第-一个元素, 把它.的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适 阅读全文
posted @ 2021-11-23 21:11 剪水行舟 阅读(54) 评论(0) 推荐(0)
摘要:冒泡排序 基本思想 比较相邻的元素。如果第一个比第二个大(小),就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大(小)的数。 针对所有的元素重复以上的步骤,除了最后已经选出的元素(有序)。 持续每次对越来越少的元素(无序元素)重复上面的步骤 阅读全文
posted @ 2021-11-23 21:10 剪水行舟 阅读(53) 评论(0) 推荐(0)
摘要:选择排序 基本思想 选择排序(select sorting) 也是一种简单的排序方法。它的基本思想是:第一次从arr[0]^ arr[n-1]中选取最小值, 与arr[0]交换,第二次从arr[1]^ arr[n-1]中选取最小值, 与arr[1]交换, 第三次从arr[2]^ arr[n-1]中选 阅读全文
posted @ 2021-11-23 21:10 剪水行舟 阅读(86) 评论(0) 推荐(0)
摘要:递归 基本介绍 直接或间接 自己调用自己 当递归运行到一个方法时 会开启一个独立的栈 规则 执行一个方法时,就创建--个新的受保护的独立空间(栈空间) 方法的局部变量是独立的,不会相互影响 递归必须向退出递归的条件逼近,否则就是无限递归,死龟了:) StackOverFlow 栈溢出 错误 当一个方 阅读全文
posted @ 2021-11-23 21:09 剪水行舟 阅读(55) 评论(0) 推荐(0)
摘要:中缀表达式转后缀 基本介绍 将中缀表达式转成后缀表达式。 具体步骤如下: 初始化两个栈: 运算符栈s1 和 储存中间结果的栈s2; 从左至右扫描中缀表达式; 遇到操作数时,将其压s2; 遇到运算符时,比较其与s1栈顶运算符的优先级: (1)如果s1为空,或栈顶运算符为左括号“(”,则直接将此运算符入 阅读全文
posted @ 2021-11-23 21:08 剪水行舟 阅读(76) 评论(0) 推荐(0)
摘要:单向链表 基本介绍 应用 package com.company.linkedlist; /** * @Function : * date 2021/5/8 - 16:35 * How : */ public class LinkedList { public static void main(St 阅读全文
posted @ 2021-11-23 21:07 剪水行舟 阅读(17) 评论(0) 推荐(0)
摘要:栈 基本介绍 应用场景 实现思路 计算器实现 package com.company.stack; import com.sun.source.tree.TryTree; import java.util.Stack; /** * @Function : * date 2021/5/9 - 14:1 阅读全文
posted @ 2021-11-23 21:07 剪水行舟 阅读(17) 评论(0) 推荐(0)
摘要:队列 基本介绍 队列是一个有序列表,可以用数组或是链表来实现。 遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取 出 数组模拟队列 不可以复用空间版本 package com.company.queue; import java.util.Scanner; import java. 阅读全文
posted @ 2021-11-23 21:06 剪水行舟 阅读(11) 评论(0) 推荐(0)
摘要:稀疏数组 基本介绍 在一个数组中, 大部分的元素为同一个值,可以用稀疏数组来保存该数组 压缩数组 稀疏数组的基本处理方法 记录数组一共有几行几列 有多少不同值 把具有不同值的行列及其值记录在一个小规模数组中 从而缩小数组规模 6x7 -》 3x9 应用 二维数组转稀疏数组的思路 1.遍历原始的二维数 阅读全文
posted @ 2021-11-23 21:05 剪水行舟 阅读(39) 评论(0) 推荐(0)

1