算法
@Within
一息尚存,希望不灭。
展开
-
简单排序,冒泡排序 选择排序 插入排序 对象排序
数据结构和算法第二版(第三章)如何排序?冒泡排序选择排序插入排序对象排序简单排序的比较如何排序?1.比较两个数据项。2.交换两个数据项,或复制其中一项。但是,这种算法具体实现的细节有所不同。冒泡排序1、比较两个数据。2、如果第一个数据比第二个数据大,交换位置3、向右移动一个位置,继续比较下面两个数据,沿着这个队列比较下去,一直比较到队列的最右边。...原创 2018-08-10 16:11:00 · 236 阅读 · 1 评论 -
贪心算法
贪心思想保证每次操作都是局部最优的,并且最后得到的结果是全局最优的。分配饼干455. Assign Cookies (Easy)Input: [1,2], [1,2,3]Output: 2Explanation: You have 2 children and 3 cookies. The greed factors of 2 children are 1, 2.You ha...原创 2018-09-12 09:57:03 · 261 阅读 · 0 评论 -
题库网站
给大家分享几个可以搜索的题库网站: TopCoder:全世界规模最大的程序竞赛网站,其中包含了算法竞赛。 Codeforces:俄罗斯最大的算法比赛网站,是自我学习的好地方。 CodeChef:印度最大的算法竞赛网站。 AtCoder:日本最大的算法竞赛网站,题风很棒,有英文和日文题解。 leetcode:世界知名的演算法面试考题网站。想要省时省力的面...原创 2018-07-24 15:52:29 · 2732 阅读 · 0 评论 -
算法可视化中的MVC
上节我们实现了小球动画,不过Main方法有点累赘,这节我们来进行封装操作,我们来实现经典的MVC结构,Circle为我们的数据层,AlgoFrame为我们的视图层来负责显示相关所有的逻辑的逻辑,我们现在缺少一个控制层来将我们的数据层和视图层连接起来。我们新建一个类AlgoVisualizer也就是我们的算法可视化器。这就是我们的控制层import java.awt.*;public class...原创 2018-06-20 15:02:49 · 596 阅读 · 0 评论 -
高级绘制特性:抗锯齿和双缓存
现在的绘制系统越来越成型,上几节中,我们会发现我们的圆形非常的不平滑,这一节我们来实现如何抗锯齿。实现效果如下通过在边缘的位置渲染使用不同深度的颜色或者利用透明度这样的概念来实现抗锯齿。使得边缘的颜色存在灰度。人眼在效果上看上去就相对平滑很多。Anti-Aliased使用框架提供的方式。完整方案请查看Java官方文档双缓存:主要应用于动画上,解决闪烁问题。完整代码import java.awt.G...原创 2018-06-19 13:13:02 · 1195 阅读 · 0 评论 -
(七)动画基础
上几节我们的图形都是静态的,这节我们通过算法可视化,将算法以动画的形式展现出来。大致实现效果如下,因为不可以上传动态图,我通过两张不同的图片来表示他是动态的。修改笔画,填充,颜色,甜甜圈下面来实现,我们先建一个Circle类。public class Circle { public int x; public int y;//圆心 private int r;//半径...原创 2018-06-19 22:31:53 · 667 阅读 · 0 评论 -
随机模拟问题(two)----深入分钱问题
More about the Money Experiment在上一小节我们已经对分钱问题进行了一个模拟,这一小节我们对上一小节的代码进行改进。我们添加一个排序,再进行渲染。运行结果如下:我们继续改进:每一帧执行的轮数,然后允许money为负值,并将负值绘制在下部分。颜色绘制为红色。具体运行如下:...原创 2018-06-25 22:56:12 · 656 阅读 · 0 评论 -
玩转算法(二)使用JFrame
方法一方法二,创建一个JFrame的子类,继承JFrame。原创 2018-06-10 22:17:54 · 427 阅读 · 0 评论 -
玩转算法----看得见的算法。(一)
课程语言环境简介使用语言 :Java 8开发环境搭建:去Oracle官网下载最新的Jdk 1.8自行安装,这里就不过多介绍了。IDE:IntelliJ IDEA ,自行下载安装。使用免费的社区版就行。然后创建第一个项目。选择Java,JDK选择1.8,next,选择一个文件夹,next,finish添加System.out.println("欢迎光临")然后就完成了。...原创 2018-06-10 19:25:37 · 1447 阅读 · 1 评论 -
算法与数据结构之疯狂学习还是深度思考
不间断更新。。。。我们为什么要学习算法?1、进公司面试?更深入呢?算法是至关重要的,可以说算法无处不在。比如:搜索引擎,智能搜索并进行排序。 苹果的siri能够智能识别我们的语言。lucene和elasticsearch的前世今生lucene,最先进、功能最强大的搜索库,直接基于lucene开发,非常复杂,api复杂(实现一些简单的功能,写大量的ja...原创 2018-06-10 15:52:53 · 298 阅读 · 2 评论 -
(one)随机模拟问题---------分钱问题
计算机非常重要的作用之一就是对问题进行模拟原创 2018-06-24 23:01:21 · 494 阅读 · 0 评论 -
玩转算法(三)设置画布与图形绘制基础
在算法二中,我们已经通过两种方法创建出来一个画布,现在这一节中,我们在画布中添加一个圆形下面就看看是如何实现的。首先主函数然后实现最后完整代码。public class AlgoFrame extends JFrame{ private int canvasWidth; private int canvasHeight; public AlgoFrame(String ...原创 2018-06-15 10:41:37 · 501 阅读 · 0 评论 -
(Eleven)Templates课程使用的GUI模板
本节课总结一下我们使用的GUI模板,本项目主要采用的MVC结构AlgoFrame:视图层,继承了JFrame,即JFrame的子类,其中的render是根据传入的data数据进行相应的渲染,我们使用的是Java中所有的父类Objectimport java.awt.*;import javax.swing.*;public class AlgoFrame extends JFrame{ ...原创 2018-06-22 13:36:37 · 381 阅读 · 0 评论 -
(nine)Keyboard-Event 键盘事件
我们开始给我们的项目添加交互效果,首先我们添加键盘的交互。实现效果:我们通过空格键可以暂停小球,再按一次继续运动。修改AlgoVisualizer类添加isAnimated侦听动画是否执行import java.awt.*;import java.awt.event.*;public class AlgoVisualizer{ private Circle[] circles; ...原创 2018-06-20 19:58:20 · 1768 阅读 · 0 评论