精华内容
下载资源
问答
  • 更多相关内容
  • java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法...
  • Java算法编程题,一共50道,答案完整,可以检测Java的掌握情况
  • Java算法集题大全.zip

    2022-05-29 10:56:32
    Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法...
  • Java算法大全

    2018-01-07 09:59:07
    Java算法大全Java算法大全(近100种算法打包).rar Java算法大全(近100种算法打包).rar Java算法大全(近100种算法打包).rar
  • Java算法刷题带注释Leetcode,基础算法
  • 什么是java算法

    千次阅读 2021-02-26 10:11:41
    什么是java算法算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,java算法就是采用Java语言来实现解决某一问题的清晰指令。算法的特征:输入性:有零个或多个外部量作为算法的输入输出性:算法产生...

    12da98a592521c0e0eed01394abd4d6b.png

    什么是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算法的难得资料。
  • 主要介绍了基于java实现的ECC加密算法,简单说明了ECC算法的概念、原理,并结合实例形式分析了java实现ECC加密算法的定义与使用技巧,需要的朋友可以参考下
  • java|算法|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:38
    java算法大全,有近100多种常见算法的源代码,是学习JAVA算法的难得资料。
  • 网上找了不少定位算法的资源,都不够全面,后来自己结合了网上的一些算法实现,自己写了一个java 的三角质心的算法
  • java算法全卷(包括基本算法和图算法)
  • java算法 面试必备 安卓面试 必备算法
  • 这里给出一种简单的算法实现。 将城市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:41
    java算法与编程面试题java算法与编程面试题java算法与编程面试题java算法与编程面试题java算法与编程面试题
  • java 算法学习 --- 常用的算法

    万次阅读 多人点赞 2018-07-23 15:42:35
    编程语言的几种基本算法主要有以下几个: 1、 插入排序(直接插入排序、 希尔排序) 2、 交换排序(冒泡排序、快速排序) 3、 选择排序(直接选择排序、 堆排序) 4、 归并排序 5、 分配排序(箱排序、 基数排序) ...
  • 一份很好的java 算法大全,java进阶的必备神器。非常经典的一些小算法。搞java的可以备一份
  • Java 算法导论 电子书

    2010-06-30 11:28:45
    Java 算法导论 电子书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:24
    java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java算法(推荐)java...
  • 题目: 现有大约1000个左右催收单,需要发给20个左右催收员。每个催收单的金额不同要求对每个催收员分配到的催收单,尽可能的在金额上都比较平均。金额涉及到奖金,不能不公平处理 要求: 写出实现方法、单元测试...
  • Java 算法时间复杂度和空间复杂度

    千次阅读 2017-06-09 14:09:51
    先补充一下概念:Java 内存模型中的可见性、原子性和有序性。 可见性:  可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的...
  • java算法java算法java算法java算法java算法java算法java算法java算法java算法java算法java算法java算法
  • 1000多种java算法大全源码包

    千次下载 热门讨论 2014-04-09 18:41:36
    1000多种java算法大全源码包
  • 普通克里金算法实现,使用java进行的一个普通克里金算法实现,本代码开源
  • 主要介绍了java实现最短路径算法之Dijkstra算法, Dijkstra算法是最短路径算法中为人熟知的一种,是单起点全路径算法,有兴趣的可以了解一下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,342,416
精华内容 536,966
关键字:

java 算法

java 订阅
友情链接: sweetalert-2.1.0.zip