-
2019-05-16 09:44:18
1、Java中用到的线程调度算法是什么?
2、java二叉树算法面试题大全含答案
3、java笔试手写算法面试题大全含答案
4、java递归算法练习:使用递归算法写个程序计算n!
5、JVM的常见垃圾回收算法
6、《java算法大全》第一期
7、《java算法大全》第三期
8、《java算法大全》第二期
9、《java算法大全》第五期
10、《java算法大全》第四期
11、《java经典算法》之葵花宝典11到20篇
12、《java经典算法》之葵花宝典1到10篇
13、《java经典算法》之葵花宝典21到30篇
14、《java经典算法》之葵花宝典31到43篇
15、写一排序算法,输入10个数字,以逗号分开,可根据参数选择升序或者降序排序,须注明是何种排序算法。
16、垃圾回收算法概述
17、排序算法都哪些?用Java写一个排序系统
转自java面试题网更多相关内容 -
java算法大全源码 java算法大全源码
2022-06-02 21:16:52java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法... -
JAVA算法编程题全集(50题及答案)
2018-01-18 18:26:09Java算法编程题,一共50道,答案完整,可以检测Java的掌握情况 -
Java算法集题大全.zip
2022-05-29 10:56:32Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法... -
Java算法大全
2018-01-07 09:59:07Java算法大全Java算法大全(近100种算法打包).rar Java算法大全(近100种算法打包).rar Java算法大全(近100种算法打包).rar -
Java算法刷题带注释Leetcode
2017-06-19 16:41:51Java算法刷题带注释Leetcode,基础算法 -
什么是java算法
2021-02-26 10:11:41什么是java算法算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,java算法就是采用Java语言来实现解决某一问题的清晰指令。算法的特征:输入性:有零个或多个外部量作为算法的输入输出性:算法产生...什么是java算法
算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,java算法就是采用Java语言来实现解决某一问题的清晰指令。
算法的特征:
输入性:有零个或多个外部量作为算法的输入
输出性:算法产生至少一个量作为输出
确定性:算法中每条指令清晰,无歧义
有穷性:算法中每条指令的执行次数有限,执行每条指令是时间也有限
可行性:算法原则上能够精确的运行,而且人们用纸和笔做有限次运算后即可完成
程序:算法用某种程序设计语言的具体实现,程序可以不满足又穷性
算法的四个标准:
正确性:在合理的数据输入下,能在有限时间内得出正确的结果
可读性:应易于人的理解,易于调试
健壮性:具备检查错误和对错误进行适当处理的能力
效率:算法执行时所需计算机资源的多少,包括运行时间和存储空间
算法的描述形式:1、自然语言 2、算法框图法 3、伪代码语言 4、高级程序设计语言
算法设计的一般过程:
1、理解问题
2、预测所有可能是输入
3、在精确解和近似解间做选择
4、确定适当的数据结构
5、算法设计技术
6、描述算法
7、跟踪算法
8、分析算法的效率
9、根据算法编写代码
下面是Java实现的一个算法:冒泡排序/**
* 冒泡排序
*/
public class BubbleSort1 {
public static void BubbleSort(int[] arr) {
boolean flag = true;
while(flag){
int temp;//定义一个临时变量
for(int i=0;i
for(int j=0;j
if(arr[j+1]
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
flag = true;
}
}
if(!flag){
break;//若果没有发生交换,则退出循环
}
}
}
}
public static void main(String[] args) {
int arr[] = new int[]{1,6,2,2,5};
BubbleSort.BubbleSort(arr);
System.out.println(Arrays.toString(arr));
}
}
相关文章教程推荐:java入门教程
-
java算法大全
2015-01-21 10:10:43· 探索使用C、C++、Java以及Ruby实现的算法解决方案以及开发小贴士。 · 了解算法预期的性能,以及它达到最高性能时所需要的条件。 · 发现不同算法之间相似的设计哲学。 · 学习高级数据结构,来提升算法的性能... -
java算法大全源码包-java算法大全,有近100多种常见算法的源代码,是学习JAVA算法的难得资料
2013-06-29 13:16:00java算法大全源码包 java算法大全,有近100多种常见算法的源代码,是学习JAVA算法的难得资料。 -
基于java实现的ECC加密算法示例
2020-08-29 17:46:52主要介绍了基于java实现的ECC加密算法,简单说明了ECC算法的概念、原理,并结合实例形式分析了java实现ECC加密算法的定义与使用技巧,需要的朋友可以参考下 -
java|算法|java算法50道题
2012-01-04 17:02:49java|算法|java算法50道题|java|算法|java算法50道题 -
JAVA算法竞赛输入输出专题
2018-12-23 01:27:00小编由于报名了蓝桥杯Java组,所以日常做题从使用C/C++转变成使用Java。在转变的过程中,肯定会遇到很多大大小小的输入输出问题。小编打算总结下来,当做自己学习的材料,也分享给感兴趣的朋友。2020.2.23更新,增加了数组模块
前言
小编由于报名了蓝桥杯Java组,所以日常做题从使用C/C++转变成使用Java。在转变的过程中,肯定会遇到很多大大小小的输入输出问题。小编打算总结下来,当做自己学习的材料,也分享给感兴趣的朋友。
文件名问题
在比赛提交的代码中,主类必须以public class Main来命名,而且不能带package语句否则会报出编译错误。
//去掉public或者不使用Main作为类名都会gg,亲测有效orz基本的输入和输出
竞赛入门最经典的问题,莫过于A+B Problem,如果连最基本的输入输出都做不到,学了再多的算法也用不出来。
import java.util.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); int a, b; while (cin.hasNext()) { a = cin.nextInt(); b = cin.nextInt(); System.out.println(a + b); } } }
上面代码展示了最基本的输入输出框架,输入类Scanner包含在java.util类包中,首先应该把它导入。
import java.util.*;
由于java的输入需要预先创建输入类对象,所以我们一般习惯在main函数的第一句先创建这个Scanner类对象,对象命名为cin算是表达对C/C++的热爱和怀念吧hhh
如果题目数据量比较大的话可以选择第二种初始化方法,运行效率会高上一些。Scanner cin = new Scanner(System.in); //or Scanner cin = new Scanner(new BufferedInputStream(System.in));
由于题目说明“输入包括多组数据,到文件结尾为止”,类比C/C++的格式,我们很容易理解以下的这段java代码
while (cin.hasNext()) //当输入流中还有数据时 { a = cin.nextInt(); b = cin.nextInt(); }
1.基本数据类型
这些类型在C/C++中基本上已经用烂了,一般过目一遍就会了。
int n = cin.nextInt();//读入一个整数 double d = cin.nextDouble();//读入一个双精度浮点数 long l = cin.nextLong();//读入一个长整型数
需要注意一点:由于Java的main方法是static类型,所以定义全局变量或者方法的时候就需要加上static关键字!
2.数组
关于数组的创建,Java和C/C++也有所不同,它在创建时需要使用new关键字来为其分配存储空间,不过也不会非常麻烦。
int arr[] = new int[Size]; //or int []arr = new int[Size];
对于二维数组的初始化问题,可以看看我写的另一篇文章:Java 二维数组的初始化
3.字符&字符串
Scanner类中并没有提供单个字符char类型的读入方法,但是我们可以先调用next()方法读取只包含一个字符的字符串,然后用charAt(0)返回0号索引处的字符,即可得到读取到单个字符。
char ch = cin.next().charAt(0);
对于字符串,java中已经封装好了字符串String类,我们也可以用char数组在进行字符串存储。
String str1 = next(); //相当于C/C++中的scanf("%s",str);或cin>>str; String str2 = nextLine();//相当于C/C++中的gets(str2);或者getline(cin,str2); char s1[] = cin.next().toCharArray();//调用toCharArray()方法将其转化为char类型数组 char s2[] = cin.nextLine().toCharArray();//类比理解
但是要注意的是,我们不能像C++那样直接用数组下标去访问String类对象中的某号字符。 我们通常利用charAt(int index)方法来访问String类对象中的某号字符,或者不需要调用String类的其他方法的情况下,直接采用char类型数组来存储字符串。
4.输出
日常基本的输出:
System.out.println(); //相当于C++中的cout<<endl; System.out.print(); //相当于C++中的cout<<"";
输出到文件中:
以下情况可能会用到输出到文件中- 当数据量过于庞大,java的控制台都无法输出,需要输出到文件中。
- 用暴力法打表,需要按格式先输入到文件中。
try { BufferedWriter bw = new BufferedWriter(new FileWriter(new File("E://result.txt"))); bw.write(str);//str表示写入文件的内容 bw.flush();//立刻将缓存区的数据写入数据流 bw.close();//将BufferedWriter流关闭 } catch (Exception e) { e.printStackTrace(); }
File(string pathname); 用于初始化文件类,pathname表示文件的路径
FileWriter(File file); 用于初始化文件写入类FileWriter,file表示文件类对象
未完待续…
-
java算法大全(含源码包)
2011-08-28 16:19:38java算法大全,有近100多种常见算法的源代码,是学习JAVA算法的难得资料。 -
三角质心定位法--JAVA算法的实现
2015-12-01 12:00:09网上找了不少定位算法的资源,都不够全面,后来自己结合了网上的一些算法实现,自己写了一个java 的三角质心的算法 -
java算法全卷(包括基本算法和图算法)
2007-10-03 16:28:13java算法全卷(包括基本算法和图算法) -
2016JAVA算法面试编程题全集(50题及答案)
2016-09-12 10:02:36java算法 面试必备 安卓面试 必备算法 -
算法题解:旅行商(TSP)问题JAVA算法求解
2019-07-08 00:03:26这里给出一种简单的算法实现。 将城市0(假设为第0个节点)作为起点和终点。由于路线是循环的,所以我们可以把任何一点作为起点。 以DFS方式开始从源到相邻节点的遍历。 计算每次遍历的成本,跟踪最小成本...旅行商TSP问题描述
旅行推销员问题(Travelling salesman problem, TSP)是这样一个问题:给定一组城市和每对城市之间的距离,问题是找到最短的可能路线,访问每个城市一次,然后返回起点。它是组合优化中的一个NP困难问题,在运筹学和理论计算机科学中非常重要。
注意哈密顿回路和TSP之间的区别。哈密顿回路问题是要找出是否存在一个旅游线路,每个城市访问一次。这里我们知道哈密顿回路存在(因为图是完整的),事实上存在许多这样的回路,问题是找到一个最小权重的哈密顿回路。
例如,考虑上面图中所示的内容。图中的TSP路线为:是-0>1->3->2->0。旅游费用为10+25+30+15,共80元。
哈密顿回路
哈密顿图(哈密尔顿图)(Hamiltonian graph,或Traceable graph)是一个无向图,由天文学家哈密顿提出,由指定的起点前往指定的终点,途中经过所有其他节点且只经过一次。在图论中是指含有哈密顿回路的图,闭合的哈密顿路径称作哈密顿回路(Hamiltonian cycle),含有图中所有顶点的路径称作哈密顿路径(Hamiltonian path)。
算法分析
这里给出一种简单的算法实现。
将城市0(假设为第0个节点)作为起点和终点。由于路线是循环的,所以我们可以把任何一点作为起点。以DFS方式开始从源到相邻节点的遍历。
计算每次遍历的成本,跟踪最小成本,并不断更新最小成本存储值。
以最低成本返回结果。
算法设计
package com.bean.algorithm.basic; public class TravellingSalesmanProblem { static int tsp(int[][] graph, boolean[] v, int currPos, int n, int count, int cost, int ans) { if (count == n && graph[currPos][0] > 0) { ans = Math.min(ans, cost + graph[currPos][0]); return ans; } /* * 回溯步骤(BACKTRACKING STEP) * 循环遍历currPos结点的邻接表,将计数增加1,并按graph[currPos][i]值增加成本 * cost + graph[currPos][i] */ for (int i = 0; i < n; i++) { if (v[i] == false && graph[currPos][i] > 0) { // 标记结点被访问过 v[i] = true; ans = tsp(graph, v, i, n, count + 1, cost + graph[currPos][i], ans); // 标记结点没有被访问过 v[i] = false; } } return ans; } public static void main(String[] args) { // 顶点(结点)的数量 int n = 4; int[][] graph = { { 0, 10, 15, 20 }, { 10, 0, 35, 25 }, { 15, 35, 0, 30 }, { 20, 25, 30, 0 } }; // boolean类型的数组 v 用来标记一个城市结点是否被访问过 boolean[] v = new boolean[n]; // 标记第 0 个 结点已经被访问过,所以v[0]=true v[0] = true; int ans = Integer.MAX_VALUE; // 查找最小权重的汉密尔顿回路 Hamiltonian Cycle ans = tsp(graph, v, 0, n, 1, 0, ans); // 输出结果ans就是最小权重的汉密尔顿回路( Hamiltonian Cycle) System.out.println(ans); } }
程序运行结果:
80
-
java算法与编程面试题
2011-03-09 15:14:41java算法与编程面试题java算法与编程面试题java算法与编程面试题java算法与编程面试题java算法与编程面试题 -
java 算法学习 --- 常用的算法
2018-07-23 15:42:35编程语言的几种基本算法主要有以下几个: 1、 插入排序(直接插入排序、 希尔排序) 2、 交换排序(冒泡排序、快速排序) 3、 选择排序(直接选择排序、 堆排序) 4、 归并排序 5、 分配排序(箱排序、 基数排序) ... -
JAVA经典算法大全(都会就算牛逼的了)
2014-03-07 23:14:20一份很好的java 算法大全,java进阶的必备神器。非常经典的一些小算法。搞java的可以备一份 -
Java 算法导论 电子书
2010-06-30 11:28:45Java 算法导论 电子书Java 算法导论 电子书Java 算法导论 电子书 -
Java 算法SM2加密解密
2021-09-27 16:31:52简介 什么是SM2 SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法。 SM2 算法和 RSA 算法都是公钥...SM2算法和RSA算法比较 SM2性能更优更安全:密码复杂度高、处理速度快、机器性能消耗更小 - SM -
JAVA算法之—水仙花数
2019-05-12 21:37:06水仙花数 水仙花数是指一个三位数,他的百、十、... 我们可以利用取余运算符=》'%'来实现算法 假设一个数字是i,那么它的百位数就是int h=i/100(int型自动舍弃小数点后的值),它的十位数就是int t=i/10%10,个位... -
java算法(推荐)
2009-04-23 19:14:24java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java... -
JAVA算法,求最优平均算法。尽可能平均
2017-07-19 02:42:07题目: 现有大约1000个左右催收单,需要发给20个左右催收员。每个催收单的金额不同要求对每个催收员分配到的催收单,尽可能的在金额上都比较平均。金额涉及到奖金,不能不公平处理 要求: 写出实现方法、单元测试... -
Java 算法时间复杂度和空间复杂度
2017-06-09 14:09:51先补充一下概念:Java 内存模型中的可见性、原子性和有序性。 可见性: 可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的... -
java算法java算法java算法
2009-09-18 11:16:17java算法java算法java算法java算法java算法java算法java算法java算法java算法java算法java算法java算法 -
1000多种java算法大全源码包
2014-04-09 18:41:361000多种java算法大全源码包 -
KrigingCore_java_克里金插值算法实现_克里金算法_
2021-09-30 10:40:51普通克里金算法实现,使用java进行的一个普通克里金算法实现,本代码开源 -
java实现最短路径算法之Dijkstra算法
2020-08-29 04:10:30主要介绍了java实现最短路径算法之Dijkstra算法, Dijkstra算法是最短路径算法中为人熟知的一种,是单起点全路径算法,有兴趣的可以了解一下