当前位置:首页 » 编程语言 » java经典算法100例

java经典算法100例

发布时间: 2023-05-23 13:33:59

A. java的经典算法题目:计算兔子 该怎样理解它的思路!

你的理解错了,假设第一个数是i,第二个数是j,那么第三个数是i+j,不是(x-1)+ (x-2)

B. 大学java中都学过哪些经典算法请学过的朋友解答下

¤ 归并排序算法
¤ 枚举法
¤ 数字全排列问题
¤ 优化高精度减法
¤ 高精度阶乘
¤ 高精度减法
¤ 高精度乘法
¤ Dijkstra最短路径(一点到各顶点最短路径)
¤ 八皇后问题
¤ 快速排序算法
¤ 地图四色问题
¤ 穿越迷宫
¤ 常用排序算法
¤ 二分查找法完整版
¤ 标准快速排序算法
¤ 一躺快速排序法
¤ 快速排序算法
¤ 插入排序算法
¤ 选择排序算法
¤ 冒泡排序算法
¤ 统计算法
¤ 常用算法——广度优先搜索
¤ 常用算法——深度优先搜索

C. 用java编写

int end = stringNumbers.indexOf(" ");
//添加的 开始
if("".equals(stringNumbers))
{
System.out.println("谢谢您的使用!");
return;
}
//添加的 结束
while (end!=-1)

D. Java的数组的几种经典算法

JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。
快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。
冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来。
选择排序法是将数组的第一个数据作为最大或者最小的值,然后通过比较循环,输出有序的数组。
插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序。下面我就将他们的实现方法一一详解供大家参考。
<1>利用Arrays带有的排序方法快速排序

public class Test2{ public static void main(String[] args){ int[] a={5,4,2,4,9,1}; Arrays.sort(a); //进行排序 for(int i: a){ System.out.print(i); } } }

<2>冒泡排序算法

public static int[] bubbleSort(int[] args){//冒泡排序算法 for(int i=0;i<args.length-1;i++){ for(int j=i+1;j<args.length;j++){ if (args[i]>args[j]){ int temp=args[i]; args[i]=args[j]; args[j]=temp; } } } return args; }

<3>选择排序算法

public static int[] selectSort(int[] args){//选择排序算法 for (int i=0;i<args.length-1 ;i++ ){ int min=i; for (int j=i+1;j<args.length ;j++ ){ if (args[min]>args[j]){ min=j; } } if (min!=i){ int temp=args[i]; args[i]=args[min]; args[min]=temp; } } return args; }

<4>插入排序算法

public static int[] insertSort(int[] args){//插入排序算法 for(int i=1;i<args.length;i++){ for(int j=i;j>0;j--){ if (args[j]<args[j-1]){ int temp=args[j-1]; args[j-1]=args[j]; args[j]=temp; }else break; } } return args; }

E. java冒泡排序法代码

冒泡排序是比较经典的排序算法。代码如下:

for(int i=1;i<arr.length;i++){

for(int j=1;j<arr.length-i;j++){

//交换位置

}

拓展资料:

原理:比较两个相邻的元素,将值大的元素交换至右端。

思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。

第一趟比较完成后,最后一个数一定是数组中最大的一个数,所以第二趟比较的时候最后一个数不参与比较;

第二趟比较完成后,倒数第二个数也一定是数组中第二大的数,所以第三趟比较的时候最后两个数不参与比较;

依次类推,每一趟比较次数-1;

??

举例说明:要排序数组:int[]arr={6,3,8,2,9,1};

for(int i=1;i<arr.length;i++){

for(int j=1;j<arr.length-i;j++){

//交换位置

}

F. JAVA算法题

//第一种方法
publicstaticvoidmethod1(int[]array){
//先排序
for(inti=0;i<array.length;i++){
for(intj=i+1;j<array.length;j++){
if(array[i]>array[j]){
intc=array[i];
array[i]=array[j];
array[j]=c;
}
}
}
//第0位不变,2n位与2n-1位互换
for(inti=2;i<array.length;i+=2){
intc=array[i];
array[i]=array[i-1];
array[i-1]=c;
}
}

上面的方法先将数组排序,然后再把除0外的第2n位与2n-1位互换,这样可以保证奇数位的数总比两边的数字大,可以满足公式

	//第二种方法
publicstaticvoidmethod2(int[]array){
//直接按0,2,1,4,3,6,5,8,7...的顺序排序
for(inti=0;i<array.length;i=nextIndex(i)){
for(intj=nextIndex(i);j<array.length;j=nextIndex(j)){
if(array[i]>array[j]){
intc=array[i];
array[i]=array[j];
array[j]=c;
}
}
}
}

publicstaticintnextIndex(inti){
returni==0?i+2:(i%2==0?i-1:i+3);
}

第二种方法在排序时直接采用除0外的第2n位与2n-1位互换的顺序排序

publicstaticvoidmain(String[]args){
int[]array=newint[]{1,5,3,4,7,5};
method1(array);
for(inti=0;i<array.length;i++){
System.out.print(i==0?"":(i%2==0?">=":"<="));
System.out.print(array[i]);
}
}

结果:1<=4>=3<=5>=5<=7

虽然结果与例子不一样,但也能满足公式需求

G. java经典算法题——猴子吃桃

public class Monkey
{
public static void main(String[] args)
{
int sum=0,remain=1;
//每天吃剩的桃子加一个正好是前一天桃子的一半,每天桃子的总数就是前一天剩下桃子的数量
for(int day=9;day>=1;day--)
{
sum=(remain+1)*2;
remain=sum;
System.out.println("第"+day+"天还剩"+remain+"个桃子");
}
System.out.println(sum);
}
}

H. 求Java常用算法和经典算法

java.util.Arrays中包含了很多算法你可以看一看,jdk安装的时候就有提供源代码的。

热点内容
安卓手机如何看最真实的型号 发布:2025-05-19 19:58:59 浏览:7
U盘超级加密2008 发布:2025-05-19 19:44:32 浏览:453
灯带编程软件 发布:2025-05-19 19:32:30 浏览:285
如何判断服务器被多少人访问 发布:2025-05-19 19:27:45 浏览:123
编程stata 发布:2025-05-19 19:12:18 浏览:513
解压命令gz 发布:2025-05-19 19:11:37 浏览:823
linux下的程序开发 发布:2025-05-19 18:55:02 浏览:927
该文件夹未包含 发布:2025-05-19 18:54:17 浏览:195
安卓拳皇对战用哪个平台 发布:2025-05-19 18:42:39 浏览:531
华为畅玩5怎么取消锁屏密码 发布:2025-05-19 18:42:38 浏览:583