随笔分类 - 算法基础学习
摘要:文章目录 1.什么是树? 1.1 树结构在计算机的应用 2.学习树的相关术语 3.二叉树 3.1 二叉树的定义 3.1.1 二叉树的几个类型 3.2.用java实现简单二叉树 3.2.1 简单二叉树节点的要素 3.2.2 二叉树的基本操作 3.2.2.1 插入操作 3.2.2.2 遍历方法定义(必须
阅读全文
摘要:文章目录 1.希尔排序理论 2.希尔排序代码实现 1.希尔排序理论 通过比较相距一定间隔的元素,各趟比较所用的距离随着算法的进行而减小,直到只比较相邻的元素的最后一趟位置。 初始间隔一般为 n/2 (n为元素个数) 如图所示: 2.希尔排序代码实现 class Test{ /** * 希尔排序基础实
阅读全文
摘要:文章目录 插入排序1.理论基础2.代码实现 插入排序 1.理论基础 它的一个特点是:回溯到前面进行比较,之后往后进行比较。 图示如下: 2.代码实现 注意:插入排序只适合少量元素的排序,其时间复杂度为O(n^2) class Test{ void InsertionSort(int a[],int
阅读全文
摘要:文章目录 快速排序 1.理论基础 1.1 什么是快速排序 1.2 如何得到key 1.3 快速排序是如何通过key进行划分的 2.java完整代码实现 快速排序 1.理论基础 1.1 什么是快速排序 快速排序简称快排,它是在实践中最快的已知排序算法,根据相关测试,其平均运行时间为O(N logN)
阅读全文
摘要:文章目录 1.冒泡排序理论学习2.代码实现及算法分析2.1 Java代码实现2.2.复杂度分析2.2.1 时间复杂度分析2.2.2 空间复杂度 1.冒泡排序理论学习 冒泡排序的逻辑是: 从第一个数开始,每个数都与其后面所有数进行一轮比较,根据比较结果进行位置交换,最后得到一个有序的数组。 图示: [
阅读全文
摘要:文章目录 1.什么是松散链表?1.1 松散链表定义1.2 在松散链表中查找一个元素1.3 在松散链表中查找指定位置的元素1.4 在松散链表中插入一个元素 2. Java实现松散链表2.1 首先是节点定义2.2 然后就是具体的实现2.3 最后就是测试工作 1.什么是松散链表? 1.1 松散链表定义 松
阅读全文
摘要:文章目录 1.什么是单向链表? 1.1 单向链表基本结构 1.2 实现对单向链表基本的增删改查 1.2.1 插入方法 1.2.2 如何删除链表的元素 1.2.3 如何修改指定位置节点的值 1.2.4 如何得到指定位置的值 项目地址 1.什么是单向链表? 单向链表由多个节点组成,每个 节点(用于存储数
阅读全文
摘要:针对二维数组的某一项对二维的数组排序我的思路是降维排序 /** * 针对二维数组的其中一维进行排序 * @param in 二维数组 * @param n 维度 * @return 排序后的二维数组 */ public static int[][] Sort(int[][] in,int n){ /
阅读全文
摘要:一.什么是分治策略? 我的总结是:大分小,小合大。 这句话将贯穿下面所有递归算法。 首先简单了解下递归: 1.用例子学习递归 1)阶乘函数 阶乘函数的定义: 当n=0时,n!=1 当n>0时,n!=n(n-1)! 从上面我们可以知道递归的边界条件为n=0,递归方程也就是n(n-1),由此,我们可以写
阅读全文

浙公网安备 33010602011771号