啊哈算法——图《啊哈算法》的Java现实 | 第一章:排序.《啊哈算法》的Java现实 | 第二章:栈、队列、链表.《啊哈算法》的Java现实 | 第三章:枚举!很暴力.《啊哈算法》的java实现 | 第四章:万能的搜索.《啊哈算法》的Java实现| 第五章:图.《啊哈算法》的Java实现 | 第六章 :最短路径及最短路径算法的对比分析.《啊哈算法》的Java实现 | 第七章:神奇的树.《啊哈算法
转载 2024-01-28 07:55:39
43阅读
java实现的<算法图解>一书总关键算法的总结,源代码已放在github 该项目源代码已经放到Github上,有兴趣可以点击AlgorithmGraphExample 进行访问项目启动,项目使用maven搭建,如果不使用maven导入,请保证有Junit4的jar包在工程中. 将项目导入相应IDE,执行AlgorithmInGraphTest
文章目录引言第一章 算法简介1.2 二分查找第二章 选择排序2.3 选择排序第三章 递归 引言开始学习算法,准备从《图解算法》这本书开始入门,写的确实通俗易懂、生动有趣,很适合算法入门。可惜的是书中的代码都是使用python来实现的,作为一名Java门下走(菜)狗,准备在学习的过程中,将书中的python代码用Java实现一遍,同时也会记录一些学习过程中的笔记。第一章 算法简介1.2 二分查找二
第一篇技术博客,希望有一个好的开端,每周一篇坚持下去 今天分享的是我结合最近学习的《算法图解》 的心得,以及在工作过程中意识到算法的重要性 目录 1.数据结构:数组、链表、散列表、栈、队列、图 2.算法:二分查找法、快速排序(分而治之)、递归、广度优先搜索、狄克斯特拉算法 3.工具:大O表示法 正文 1.大O表示法大O表示法是一种用于表示算法
转载 2023-09-03 12:17:36
51阅读
文章目录前言 一、什么是算法二、简单算法 1.排序算法 2.查找算法之二分法总结 前言一、什么是算法算法:      描述一种有限、确定、有效的并适合用计算机程序来实现的解决问题的方法。要定义一个算法,可以用自然语言描述解决问题的过程或是编写一段程序来实现这个过程。            &nb
转载 2023-06-25 16:42:55
274阅读
0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。0.2 算法复杂度0.3 相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前
程序员使用的十大算法1. 二分查找算法2. 分治算法3. 动态规划算法4. KMP算法 (字符串匹配问题)5. 贪心算法(集合覆盖问题)6. 普利姆算法(修路问题)7. 克鲁斯卡尔算法(公交站问题)8. 迪杰斯特拉算法9. 弗洛伊德算法10. 骑士周游问题 Java -韩顺平 图解Java数据结构和算法最后的讲解总结 1. 二分查找算法可以使用非递归和递归的方式进行,代码的区别在于while()
转载 2023-09-25 20:45:53
96阅读
今天来搞一搞归并(合并)排序基本思想归并排序的主要实现思想是分治策略,先抛出两个问题,大家在读的过程中分析下为什么归并排序满足下面这两点1、时间复杂度:T(n)= O(nlogn)2、合并排序算法是渐进最优算法。将待排序的数组分为大致相等的两部分,分别对这两部分进行排序,最终将两个排好序的数组合并成一个有序的数组。接下来我们先来看实现代码,如果可以看明白代码,说明你已经了解了归并算法了。看的时候有
转载 2023-08-31 06:48:30
49阅读
阅读这篇文章就证明你已经开始踏上了算法的修仙之路,接下来我会两天一更,介绍图解算法里面的算法的实现, 适合Java程序员阅读。 文章目录前言一、求数组的总值1. 题目2. 代码3.分析二、计算列表包含的元素数1. 题目2. 代码3.分析三、计算列表包含的元素数1. 题目2. 代码3.分析总结 前言提示:这里可以添加本文要记录的大概内容:接上一篇文章, 这篇文章是练习中等难度的递归, 为后面学习快速
转载 2023-12-09 16:40:14
64阅读
# 理解算法Java实现与应用 在计算机科学中,算法是解决问题的一系列步骤和方法。它们不仅是编程的基础,而且在我们的日常生活中也随处可见。在本文中,我们将通过几个简单的算法示例,使用Java语言进行实现,并且解释其原理和应用。 ## 什么是算法算法是为解决特定问题而设计的一系列明确的步骤。好的算法应该具备以下特征:输入、输出、可行性、确定性和终止性。 ## 基本的排序算法:冒泡排序
原创 9月前
25阅读
# 如何使用 Java 实现“图解算法” PDF 生成功能 在当今的软件开发中,能够将算法可视化并生成 PDF 文档是一项非常有用的技能。本文将指导你一步步实现“图解算法 JAVA PDF”的项目。我们将通过详细的步骤和代码示例,让刚入行的小白也能够轻松理解和实现该项目。 ## 项目流程概览 下面的表格展示了整个项目的基本流程: | 步骤 | 描述
原创 10月前
19阅读
图解算法 使用Java1. 计算思维2. 算法的条件3. 算法复杂度4. 经典算法4.1 分治法4.2 递归法4.3 动态规划法4.4 迭代法4.5 枚举法4.6 回溯法4
比较排序: 冒泡、选择、插入、希尔、堆、归并、快排非比较排序: 基数、计数、桶稳定排序: 冒泡、插入、归并、基数、计数、桶不稳定排序: 选择、希尔、堆、快排分治思想: 归并、快排冒泡排序算法步骤: 1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 3)针对所有的元素重复以上的步骤,除了最
转载 2023-07-03 22:40:43
73阅读
近日学习了排序算法,作为门外汉,理解算法有一定的困难,光靠老师讲解不能完全理解,在学习过程中,每种排序算法都查看了多个来源,相互印证,并都找了图解,来帮助记忆。目前大约算一知半解,写此博客,一方面归纳总结,加深理解,另一方面,希望能帮助苦苦思索不得的初学者通过接触多个讲解版本,以求突破。1.冒泡排序1.1 冒泡排序之菜鸟教程版本(附图解在以下链接)菜鸟教程解法//Java 代码实现 public
ISBN:978-7-115-44753-0作者:【美】Aditya Bhargava译者:袁国忠阅读时间:2021-08-15页数:184页推荐指数:★★★★★算法讲解非常通
原创 2022-06-22 12:10:06
102阅读
1点赞
文章目录前言:对文章出现的一些名词进行解释一、插入排序1.基本思想2.直接插入排序3.希尔排序(缩小增量排序)二、选择排序1.基本思想2.直接选择排序3.堆排序三、交换排序1.基本思想2.冒泡排序3.快速排序(递归与非递归)四、归并排序(递归与非递归) 前言:对文章出现的一些名词进行解释排序: 使一串记录,按照其中的某个或某些关键字的大小,递增或者递减排列起来的操作。稳定性: 假定在排序的
# 使用 Java 生成带图解算法 PDF 文件的实现指南 生成一个“图解算法” PDF 文件的过程主要涉及几个步骤,包括算法设计、图形绘制、PDF 文件生成等。本文将详细介绍如何使用 Java 实现这一过程,适合刚入行的小白开发者。 ## 整体流程 首先,让我们以表格的形式明确整个过程的步骤: | 步骤 | 描述
原创 2024-08-08 14:29:23
70阅读
文章工程:JDK 1.8工程名:algorithm-core-learning工程地址:https://github.com/JeffLi1993/algorithm-core-learning一、前言什么是算法算法是某种集合,是简单指令的集合,是被指定的简单指令集合。确定该算法重要的指标:第一是否能解决问题;第二算法运行时间,即解决问题出结果需要多少时间;还有所需的空间资源,比如内存等。很多时
##引言: 在面试中有一类问的比较多的问题–滑动窗问题,滑动窗问题本质上属于双指针问题中的前向型双指针(一个方向的双指针)。滑动窗口问题一般题目会很典型,要求我们一直维护一个size为k的window,然后do some operation/calculate something within that window。基本思路就是每次不管三七二十一先把当前新的元素加进来,然后如果有需要(比如有元素
Dijkstra算法详解1. Dijkstra算法原理 1.1. 有向图的Dijkstra算法 1.2. 无向图和栅格网络的拓展  1.2.1. 无向图  1.2.2. 栅格网络2. Dijkstra程序实现 Java 1. Dijkstra算法原理  网上关于Dijkstra算法的文章纷繁复杂,有的在算法流程上有一些问题或谬误,有的并没有明确解释算法的详细流程,有的只介绍了简单的流程步骤,没有
转载 2023-07-10 23:55:55
544阅读
  • 1
  • 2
  • 3
  • 4
  • 5