• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
gaohuan30
博客园    首页    新随笔    联系   管理    订阅  订阅

随笔分类 -  算法

算法学习
树-二叉树

摘要:二叉树(Binary Tree)也称为二分树,二元树、对分树等,是树型结构的一种常见类型 二叉树可以定义为结点的有限集合,这个集合或为空集,或者由一个根结点与两个互不相交的、分别成为这个树的左子树和右子树的二叉树组成。 可以由空的左子树或右子树,或者左右子树皆为空,由此可见二叉树由五种基本形态 二叉 阅读全文
posted @ 2020-05-08 21:55 gaohuan30 阅读(259) 评论(0) 推荐(0)
树-非线性结构

摘要:所谓非线性结构,是指在该类结构中至少存在一个数据元素,它具有两个或者两个以上的直接前驱或直接后驱。树型结构就是一种非常重要且应用广泛的非线性结构。 树的定义: 树是N(N>= 0)个节点的有限集合。它满足如下条件 1.有一个特殊的节点称为根节点(Root) 2.除根结点之外的其余节点可分为m(m>= 阅读全文
posted @ 2020-05-08 17:28 gaohuan30 阅读(1176) 评论(0) 推荐(0)
数据结构与算法(线性结构-顺序表)

摘要:线性表的定义和性质 线性表定义 定义:线性表(Linear List)是具有相同物理含义、同一数据类型的n(n >= 0)个数据元素的有限序列。 线性表的特性 1)有且仅有一个开始节点 2)有且仅有一个终端节点 3)除了开始节点和终端节点外,其余节点都有且仅有一个直接前驱和直接后驱 线性表常用的存储 阅读全文
posted @ 2020-05-08 16:33 gaohuan30 阅读(262) 评论(0) 推荐(0)
Java-队列

摘要:队列(Queue)是一种先进先出(First In First Out,FIFO)的线性表。它只允许在表的一端插入元素,而在表的另一端删除元素。 在队列中,允许插入元素的一端称为队尾(rear),允许删除元素的一端称为队头(front)。 1.顺序队列 队列的顺序存储结构称为顺序队列。它是利用一组地 阅读全文
posted @ 2020-05-08 16:32 gaohuan30 阅读(300) 评论(0) 推荐(0)
基数排序-非比较排序,多关键字排序

摘要:package com.example.sort.radix; import java.util.Arrays; public class RadixSort { public static void main(String[] args) { int[] arr = {421, 240, 115, 阅读全文
posted @ 2020-05-08 15:00 gaohuan30 阅读(200) 评论(0) 推荐(0)
计数排序-非比较排序

摘要:适用场景:量大但是范围小 package com.example.sort.count; import java.util.Arrays; public class CountSort { public static void main(String[] args) { int[] arr = {2 阅读全文
posted @ 2020-05-08 12:20 gaohuan30 阅读(186) 评论(0) 推荐(0)
快速排序

摘要:拆分数组,以最右侧为轴,小于轴的元素数组左侧,大于轴的元素数组右侧,将轴元素移到中央。 public class QuickSort { public static void main(String[] args) { int[] arr = {7, 3, 2, 8, 1, 9, 5, 4, 6}; 阅读全文
posted @ 2020-05-07 00:39 gaohuan30 阅读(121) 评论(0) 推荐(0)
归并排序

摘要:只模拟合并的流程 package com.example.sort.merge; public class MergeSort { public static void main(String[] args) { int[] arr = {1, 4, 7, 8, 3, 6, 9}; sort(arr 阅读全文
posted @ 2020-05-06 22:42 gaohuan30 阅读(102) 评论(0) 推荐(0)
递归

摘要:例如1: 1到10的累加 = 55 public class Recursion1 { public static void main(String[] args) { System.out.println(f(10)); } static long f(int n){ if(n<1){ retur 阅读全文
posted @ 2020-05-06 19:18 gaohuan30 阅读(136) 评论(0) 推荐(0)
希尔排序-改进的插入排序

摘要:间隔大移动次数少,间隔小移动距离短。 public class ShellSort { public static void main(String[] args) { int[] arr = {9, 6, 11, 3, 5, 12, 8, 7, 10, 15, 14, 4, 1, 13, 2}; 阅读全文
posted @ 2020-05-06 17:14 gaohuan30 阅读(147) 评论(0) 推荐(0)
插入排序

摘要:将数组分成两部分,左侧排序好的,右侧未排序的,然后从右侧拿数据,遍历左侧数据进行比较替换public class InsertionSort { public static void main(String[] args) { int[] arr = {9, 3, 1, 4, 6, 8, 7, 5, 阅读全文
posted @ 2020-05-06 14:57 gaohuan30 阅读(163) 评论(0) 推荐(0)
冒泡排序

摘要:package com.example.sort.bubbling; import java.util.Scanner; /** * 9 6 1 3 5 * 6 9 1 3 5 * 6 1 9 3 5 * 6 1 3 9 5 * 6 1 3 5 9 * 第一轮结束 9 从第一位 转移到了最后一位, 阅读全文
posted @ 2020-05-06 13:43 gaohuan30 阅读(127) 评论(0) 推荐(0)
数据结构和算法概述(基本概念)

摘要:数据结构的基本概念 "数据结构"是介于数学、计算机硬件和软件三者之间的一门核心课程。 当用计算机解决一个具体问题时,大致需要经过以下几个步骤:首先要从具体问题中抽象出一个适当的数学模型,然后设计一个解此数学模型的算法,最后编出程序、进行测试和调整直到得到最终解答。 寻求数学模型的实质是分析问题,从中 阅读全文
posted @ 2020-02-22 21:43 gaohuan30 阅读(1301) 评论(0) 推荐(0)

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3