java算法大全(java中的算法,一共有多少种,哪几种,怎么分类)

:暂无数据 2026-10-08 19:30:03 :0

java算法大全(java中的算法,一共有多少种,哪几种,怎么分类)

大家好,java算法大全相信很多的网友都不是很明白,包括java中的算法,一共有多少种,哪几种,怎么分类也是一样,不过没有关系,接下来就来为大家分享关于java算法大全和java中的算法,一共有多少种,哪几种,怎么分类的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

本文目录

java中的算法,一共有多少种,哪几种,怎么分类

就好比问,汉语中常用写作方法有多少种,怎么分类。

算法按用途分,体现设计目的、有什么特点
算法按实现方式分,有递归、迭代、平行、序列、过程、确定、不确定等等
算法按设计范型分,有分治、动态、贪心、线性、图论、简化等等

作为图灵完备的语言,理论上”Java语言“可以实现所有算法。
“Java的标准库’中用了一些常用数据结构和相关算法.

像apache common这样的java库中又提供了一些通用的算法

java中常用的算法,有哪些告诉我名字就可以了越多越好

插入排序
选择排序
冒泡排序
快速排序
归并排序
希尔排序
堆排序
桶式排序
基数排序
前面几个常用点吧
不过我这种低级程序员
都用的不多
哎

java面试有哪些算法

面试-java算法题:
1.编写一个程序,输入n,求n!(用递归的方式实现)。
public static long fac(int n){ if(n《=0) return 0; else if(n==1) return 1; else return n*fac(n-1);
} public static void main(String args) {
System.out.println(fac(6));
}
2.编写一个程序,有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
public static void main(String args) { int i, j, k; int m=0; for(i=1;i《=4;i++) for(j=1;j《=4;j++) for(k=1;k《=4;k++){ if(i!=j&&k!=j&&i!=k){
System.out.println(““+i+j+k);
m++;
}
}
System.out.println(“能组成:“+m+“个“);
}
3.编写一个程序,将text1.txt文件中的单词与text2.txt文件中的单词交替合并到text3.txt文件中。text1.txt文件中的单词用回车符分隔,text2.txt文件中用回车或空格进行分隔。
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

public class text{
public static void main(String args) throws Exception{
String a = getArrayByFile(“text1.txt“,new char{’\n’});
String b = getArrayByFile(“text2.txt“,new char{’\n’,’ ’});
FileWriter c = new FileWriter(“text3.txt“);
int aIndex=0; int bIndex=0;

while(aIndex《a.length){
c.write(a[aIndex++] + “\n“);
if(bIndex《b.length)
c.write(b[bIndex++] + “\n“);
}

while(bIndex《b.length){
c.write(b[bIndex++] + “\n“);
}
c.close();
}

public static String getArrayByFile(String filename,char seperators) throws Exception{
File f = new File(filename);
FileReader reader = new FileReader(f);
char buf = new char[(int)f.length()];
int len = reader.read(buf);
String results = new String(buf,0,len);
String regex = null;
if(seperators.length 》1 ){
regex = ““ + seperators + “|“ + seperators;
}else{
regex = ““ + seperators;
}
return results.split(regex);
}

}
4.639172每个位数上的数字都是不同的,且平方后所得数字的所有位数都不会出现组成它自身的数字。(639172*639172=408540845584),类似于639172这样的6位数还有几个?分别是什么?
这题采用的HashMap结构判断有无重复,也可以采用下题的数组判断。
public void selectNum(){
for(long n = 100000; n 《= 999999;n++){
if(isSelfRepeat(n)) //有相同的数字,则跳过
continue;
else if(isPingFangRepeat(n*n,n)){ //该数的平方中是否有与该数相同的数字
continue;
} else{ //符合条件,则打印 System.out.println(n);
}
}
} public boolean isSelfRepeat(long n){
HashMap《Long,String》 m=new HashMap《Long,String》(); //存储的时候判断有无重复值
while(n!=0){ if(m.containsKey(n%10)){ return true;
} else{
m.put(n%10,“1“);
}
n=n/10;
} return false;
} public boolean isPingFangRepeat(long pingfang,long n){
HashMap《Long,String》 m=new HashMap《Long,String》(); while(n!=0){
m.put(n%10,“1“);
n=n/10;
} while(pingfang!=0){ if(m.containsKey(pingfang%10)){ return true;
}
pingfang=pingfang/10;
} return false;
} public static void main(String args){ new test().selectNum();
}
5.比如,968548+968545=321732732它的答案里没有前面两个数里的数字,有多少这样的6位数。
public void selectNum(){
for(int n = 10; n 《= 99;n++){
for(int m = 10; m 《= 99;m++){ if(isRepeat(n,m)){ continue;
} else{
System.out.println(“组合是“+n+“,“+m);
}
}
}
} public boolean isRepeat(int n,int m){ int a={0,0,0,0,0,0,0,0,0,0}; int s=n+m; while(n!=0){
a[n%10]=1;
n=n/10;
} while(m!=0){
a[m%10]=1;
m=m/10;
} while(s!=0){ if(a[s%10]==1){ return true;
}
s=s/10;
} return false;
} public static void main(String args){ new test().selectNum();
}
6.给定String,求此字符串的单词数量。字符串不包括标点,大写字母。例如 String str=“hello world hello hi“;单词数量为3,分别是:hello world hi。
public static void main(String args) { int count = 0;
String str=“hello world hello hi“;
String newStr=““;
HashMap《String,String》 m=new HashMap《String,String》();
String a=str.split(“ “); for (int i=0;i《a.length;i++){ if(!m.containsKey(a[i])){
m.put(a[i],“1“);
count++;
newStr=newStr+“ “+a[i];
}
}
System.out.println(“这段短文单词的个数是:“+count+“,“+newStr);
}
7.写出程序运行结果。
public class Test1 { private static void test(intarr) { for (int i = 0; i 《 arr.length; i++) { try { if (arr[i] % 2 == 0) { throw new NullPointerException();
} else {
System.out.print(i);
}
} catch (Exception e) {
System.out.print(“a “);
} finally {
System.out.print(“b “);
}
}
}
public static void main(Stringargs) { try {
test(new int {0, 1, 2, 3, 4, 5});
} catch (Exception e) {
System.out.print(“c “);
}
}

}
运行结果:a b 1b a b 3b a b 5b
public class Test1 { private static void test(intarr) { for (int i = 0; i 《 arr.length; i++) { try { if (arr[i] % 2 == 0) { throw new NullPointerException();
} else {
System.out.print(i);
}
}
finally {
System.out.print(“b “);
}
}
}
public static void main(Stringargs) { try {
test(new int {0, 1, 2, 3, 4, 5});
} catch (Exception e) {
System.out.print(“c “);
}
}

}
运行结果:b c
8.单词数
统计一篇文章里不同单词的总数。
Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。
Output
每组值输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
Sample Input
you are my friend
#
Sample Output
4
public static void main(String args) {
List《Integer》 countList=new ArrayList《Integer》(); int count;
HashMap《String,String》 m;
String str; //读取键盘输入的一行(以回车换行为结束输入) String a;

Scanner in=new Scanner(System.in);
while( !(str=in.nextLine()).equals(“#“) ){
a=str.split(“ “);
m=new HashMap《String,String》();
count = 0; for (int i=0;i《a.length;i++){ if(!m.containsKey(a[i]) && (!a[i].equals(““))){
m.put(a[i],“1“);
count++;
}
}
countList.add(count);
}s for(int c:countList)
System.out.println(c);
}

Java算法

package com.baidu.zhidao;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class NikeLoTest {
    public static void main(String args) {
        // Create Random Array for X and Y
        int size = 50;
        double X = getRandomDoubles(0, 0.4, size);
        double Y = getRandomDoubles(0, 9, size);
        // pick up value inflection point
        List《Double》 kList = new ArrayList《》();
        List《Double》 jList = new ArrayList《》();
        for (int i = 0; i 《 size - 2; i++) { // 《- avoid ArrayIndexOutOfBoundsException
            if (isInflection(X, Y, i)) {
                kList.add(X[i]);
                jList.add(Y[i]);
            }
        }
        // K[i] J[i]
        Double K = kList.toArray(new Double[kList.size()]);
        Double J = kList.toArray(new Double[jList.size()]);
        // Knew Jnew
        Double Knew = roundAndRemoveDuplicateValue(K);
        Double Jnew = roundAndRemoveDuplicateValue(J);
    }

    private static Double roundAndRemoveDuplicateValue(Double array) {
        List《Double》 result = new ArrayList《》();
        for (Double d : array) {
            BigDecimal tmp = new BigDecimal(d);
            tmp = tmp.setScale(1, BigDecimal.ROUND_HALF_UP);
            if (!result.contains(tmp.doubleValue())) {
                result.add(tmp.doubleValue());
            }
        }
        return result.toArray(new Double[result.size()]);
    }

    private static boolean isInflection(double X, double Y, int n) {
        return (Y[n + 1] - Y[n]) * (Y[n + 2] - Y[n + 1]) 《 0;
    }

    private static double getRandomDoubles(double rangeMin, double rangeMax,
            int size) {
        double array = new double[size];
        Random r = new Random();
        for (int i = 0; i 《 array.length; i++) {
            array[i] = rangeMin + (rangeMax - rangeMin) * r.nextDouble();
        }
        return array;
    }
}

java 算法

//我自己写的,核心算法放在里面,你在加一个主类调一下就行了
//兄弟,我亲自测了,绝对可以
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;

//计算组合的算法

public class CombinationClass {

public CombinationClass()
{

}
//对于任意n选m个元素,如果m==0,则此次排法结束,如果m不为0,那么在n个元素中选择m个元素就是要首先在n个元素中选出一个元素,然后
//在其他n-1个元素中选择m-1个元素。因此,对于每一个n来讲,它的任务就是,将当前传入的集合中填充上自己的信息,然后比较是否有其他
//集合与自己所在集合相等如果这个集合长度为0,则重新建立一个集合,然后再把集合传入到其他的数据中。

public ArrayList《HashSet》 computeCombine(int cardinalNum, int ordinalNum,int numList, HashSet resultSet,ArrayList《HashSet》 resultList)
{
//拷贝副本,而不能引用原来的HashSet
HashSet resultSetEnter = (HashSet)resultSet.clone();
//如果m==0则此次排法结束
if(ordinalNum == 0)
{ //完毕一种排法,把它添加到序列中
resultList.add(resultSetEnter);
return resultList;
}
if(numList.length != cardinalNum)
return null;
int newList = new int[numList.length - 1];
for(int i = 0; i 《 numList.length; i ++)
{
//每次随便在cardinalNum中取出一个数,打印出来,然后在在其余的cardinalNum-1个数中取ordinal-1次
//如果集合长度为0,则新建一个集合
HashSet resultSetCopy =(HashSet)resultSet.clone();
if(resultSetCopy.size() == 0)
resultSetCopy = new HashSet();

resultSetCopy.add(numList[i]);

//如果有其他集合与本集合相等,则返回
boolean result = false;
for(int k = 0; k 《 resultList.size(); k ++)
{
HashSet hashSet = resultList.get(k);
result = HashSetEqual(hashSet,resultSetCopy);
//如果有集合和该集合相等,则跳出循环
if(result == true)
break;
}
//如果有集合和该集合相等,则进行下一次循环
if(result == true)
continue;
//在该集合中添加入该元素

//删掉numList[i]
for(int j = 0;j《i;j++)
{
newList[j] = numList[j];
}
for(int j = i + 1; j 《= numList.length - 1; j ++)
{
newList[j - 1] = numList[j];
}

computeCombine(cardinalNum - 1,ordinalNum - 1, newList,resultSetCopy, resultList);
}

return null;
}

public static boolean HashSetEqual(HashSet hashSet, HashSet resultSetCopy)
{ int equal = 1;
Iterator it = hashSet.iterator();
if(resultSetCopy.size() == hashSet.size()){
while(it.hasNext())
{
if(equal == 0)
break;
if(equal == 1){
equal = 0;
int num = ((Integer)it.next()).intValue();
Iterator it2 = resultSetCopy.iterator();
while(it2.hasNext())
{
int num2 = ((Integer)it2.next()).intValue();
if(num == num2){
equal = 1;
break;
}
}
}
}
if(equal == 1)
return true;
else
return false;
}
return false;
}
}

以上就是我们为大家找到的有关“java算法大全(java中的算法,一共有多少种,哪几种,怎么分类)”的所有内容了,希望可以帮助到你。如果对我们网站的其他内容感兴趣请持续关注本站。

java算法大全(java中的算法,一共有多少种,哪几种,怎么分类)

本文编辑:admin

本文相关文章:


java游戏编程(用java怎么编写游戏程序)

java游戏编程(用java怎么编写游戏程序)

本篇文章给大家谈谈java游戏编程,以及用java怎么编写游戏程序对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年9月27日 04:20

java课件(我想做一个介绍java项目的ppt文件,我想知道该如何介绍会好,比如说用到的技术,实现的功能等等)

java课件(我想做一个介绍java项目的ppt文件,我想知道该如何介绍会好,比如说用到的技术,实现的功能等等)

本篇文章给大家谈谈java课件,以及我想做一个介绍java项目的ppt文件,我想知道该如何介绍会好,比如说用到的技术,实现的功能等等对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决

2026年9月20日 08:30

lombok(java lombok 怎么赋值)

lombok(java lombok 怎么赋值)

各位老铁们好,相信很多人对lombok都不是特别的了解,因此呢,今天就来为大家分享下关于lombok以及java lombok 怎么赋值的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年9月19日 20:10

免费java(哪里有免费学习java的学习资料)

免费java(哪里有免费学习java的学习资料)

大家好,关于免费java很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于哪里有免费学习java的学习资料的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年8月23日 07:00

java软件(学习java 的软件有哪些)

java软件(学习java 的软件有哪些)

“java软件”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看java软件(学习java 的软件有哪些)!

2026年8月3日 13:50

常用正则表达式语法大全(java 正则表达式是什么)

常用正则表达式语法大全(java 正则表达式是什么)

大家好,今天小编来为大家解答以下的问题,关于常用正则表达式语法大全,java 正则表达式是什么这个很多人还不知道,现在让我们一起来看看吧!

2026年7月21日 23:20

五子棋java课程设计报告(java游戏五子棋论文)

五子棋java课程设计报告(java游戏五子棋论文)

这篇文章给大家聊聊关于五子棋java课程设计报告,以及java游戏五子棋论文对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年7月13日 00:40

extends(在java中,〈extends A 〉与〈T extends A〉有什么区别)

extends(在java中,〈extends A 〉与〈T extends A〉有什么区别)

大家好,extends相信很多的网友都不是很明白,包括在java中,〈extends A 〉与〈T extends A〉有什么区别也是一样,不过没有关系,接下来就来为大家分享关于extends和在java中,〈extends A 〉与〈T

2026年7月9日 22:30

kjava使用?:  kjava 是什么啊

kjava使用?: kjava 是什么啊

本篇文章给大家谈谈kjava,以及kjava使用对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年7月8日 02:20

java判断类型(java怎么自动判断类型并且强制转换)

java判断类型(java怎么自动判断类型并且强制转换)

其实java判断类型的问题并不复杂,但是又很多的朋友都不太了解java怎么自动判断类型并且强制转换,因此呢,今天小编就来为大家分享java判断类型的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年7月6日 11:20

更多文章:


majority of(the majority of 和 a majority of的区别以及用法例句)

majority of(the majority of 和 a majority of的区别以及用法例句)

这篇文章给大家聊聊关于majority of,以及the majority of 和 a majority of的区别以及用法例句对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月11日 07:40

汉字机内码查询表(1个汉字的机内码是几位谢谢)

汉字机内码查询表(1个汉字的机内码是几位谢谢)

大家好,关于汉字机内码查询表很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于1个汉字的机内码是几位谢谢的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年10月11日 07:20

promote翻译(英语翻译倡导怎么说)

promote翻译(英语翻译倡导怎么说)

其实promote翻译的问题并不复杂,但是又很多的朋友都不太了解英语翻译倡导怎么说,因此呢,今天小编就来为大家分享promote翻译的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 06:30

用手机如何导航?开车用手机导航哪个软件最好

用手机如何导航?开车用手机导航哪个软件最好

今天给各位分享用手机如何导航的知识,其中也会对用手机如何导航进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 06:20

多线程技术有什么用(多线程有什么作用)

多线程技术有什么用(多线程有什么作用)

其实多线程技术有什么用的问题并不复杂,但是又很多的朋友都不太了解多线程有什么作用,因此呢,今天小编就来为大家分享多线程技术有什么用的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 05:40

another time(another time和other time的区别)

another time(another time和other time的区别)

大家好,another time相信很多的网友都不是很明白,包括another time和other time的区别也是一样,不过没有关系,接下来就来为大家分享关于another time和another time和other time的区

2026年10月11日 05:00

java开发工具包jdk(JDK是什么意思)

java开发工具包jdk(JDK是什么意思)

其实java开发工具包jdk的问题并不复杂,但是又很多的朋友都不太了解JDK是什么意思,因此呢,今天小编就来为大家分享java开发工具包jdk的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 04:50

mysql 命令(MySQL的基本命令)

mysql 命令(MySQL的基本命令)

大家好,如果您还对mysql 命令不太了解,没有关系,今天就由本站为大家分享mysql 命令的知识,包括MySQL的基本命令的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月11日 03:00

手机云备份是什么意思?手机上的云备份有什么用 怎么用呢

手机云备份是什么意思?手机上的云备份有什么用 怎么用呢

各位老铁们,大家好,今天由我来为大家分享云备份,以及手机云备份是什么意思的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年10月11日 02:40

java遍历map的key(java Map 怎么遍历)

java遍历map的key(java Map 怎么遍历)

大家好,java遍历map的key相信很多的网友都不是很明白,包括java Map 怎么遍历也是一样,不过没有关系,接下来就来为大家分享关于java遍历map的key和java Map 怎么遍历的一些知识点,大家可以关注收藏,免得下次来找不

2026年10月11日 02:20

最近更新

majority of(the majority of 和 a majority of的区别以及用法例句)
2026-10-11 07:40:02 浏览:0
promote翻译(英语翻译倡导怎么说)
2026-10-11 06:30:03 浏览:0
热门文章

标签列表