Java面试题目精选

Java面试的题精选

请用Java语言编写一个完成冒泡排序的程序?

  • 1:使用Java语言实现的冒泡排序算法如下所示:
package Demo;
import java.util.Arrays;
import java.util.Random;

public class BubbleSort {
	public static void main(String[] args) {
		int[] arr = new int[10];
		for (int i = 0; i < arr.length; i++) {
			Random ran = new Random();
			arr[i] = ran.nextInt(100);
		}
		System.err.println(Arrays.toString(arr));
		// 冒泡排序
		System.out.println("----------冒泡排序  开始----------");
		for (int i = 0; i < arr.length - 1; i++) {
			for (int j = 0; j < arr.length - 1 - 1; j++) {
				if (arr[j] > arr[j + 1]) {
					int t = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = t;
				}
			}
			System.err.println(Arrays.toString(arr));
		}
		System.err.println("-----------冒泡排序  结束---------");
		System.err.println(Arrays.toString(arr));
	}
}
输出的结果:
[38, 68, 25, 28, 56, 96, 92, 99, 69, 37]
[38, 25, 28, 56, 68, 92, 96, 69, 99, 37]
[25, 28, 38, 56, 68, 92, 69, 96, 99, 37]
[25, 28, 38, 56, 68, 69, 92, 96, 99, 37]
[25, 28, 38, 56, 68, 69, 92, 96, 99, 37]
----------冒泡排序  开始----------
[25, 28, 38, 56, 68, 69, 92, 96, 99, 37]
[25, 28, 38, 56, 68, 69, 92, 96, 99, 37]
[25, 28, 38, 56, 68, 69, 92, 96, 99, 37]
[25, 28, 38, 56, 68, 69, 92, 96, 99, 37]
[25, 28, 38, 56, 68, 69, 92, 96, 99, 37]
-----------冒泡排序  结束---------
[25, 28, 38, 56, 68, 69, 92, 96, 99, 37]

2:用1,2,3,4,5这六个数,用Java写一个main函数,打印出所有不同的排序,如:512234,412345
等,要求:“4”不能在第三位,“3”与“5”不能相同连。

  • 代码如下所示:
package Demo;

import java.util.ArrayList;
import java.util.List;

public class Demo {
	public static List<String> list = new ArrayList<String>();
	public static void group(String str,String nstr) {
		if (str.length() != nstr.length()) {
			String rest = getRest(str, nstr);
			for (int i = 0; i < rest.length(); i++) {
				String temp = str + rest.substring(i, i + 1);
				if (temp.indexOf("4") != 2 && temp.indexOf("35") == -1 && temp.indexOf("53") == -1 ){
					//把符合条件的字符中添加集合中
					if (!list.contains(temp)&&temp.length()==nstr.length()) {
						list.add(temp);
					}
					group(temp, nstr);
				}
			}
		}
	}
	public static String getRest(String str, String nstr) {
		String rest = "";
		if (nstr.length() > str.length()) {
			rest = nstr;
			for (int i = 0; i < str.length(); i++) {
				//注意此处replaceFirst.而不是replaceAll
				rest = rest.replaceFirst(str.substring(i, i + 1),"");
			}
		}
		return rest;
	}
	
	public static void main(String[] args) {
		group("","12345");
		System.out.println(list.toString());
	}
}
输出的结果:
[12345, 12543, 13245, 13254, 14325, 14523, 15234,
 15243, 21345, 21543, 23145, 23154, 24315, 24513, 
 25134, 25143, 31245, 31254, 31524, 31542, 32145, 
 32154, 32514, 32541, 34125, 34152, 34215, 34251,
 34512, 34521, 41325, 41523, 42315, 42513, 43125,
 43152, 43215, 43251, 45123, 45132, 45213, 45231,
 51234, 51243, 51324, 51342, 52134, 52143, 52314,
 52341, 54123, 54132, 54213, 54231, 54312, 54321]

3:编写程序输出9*9的乘法口诀

  • 代码如下:
package day06.am;
public class NineNineDemo {

	public static void main(String[] args) {
		// 九九乘法表
		for(int i=1;i<=9;i++) {
			for(int j=1;j<=i;j++) {
				System.out.print(j+"*"+i+"="+j*i+" ");
			}
			System.out.println();
		}
	}
}
输出结果
1*1=2	
2*1=3	2*2=4	
3*1=4	3*2=5	3*3=6	
4*1=5	4*2=6	4*3=7	4*4=8	
5*1=6	5*2=7	5*3=8	5*4=9	5*5=10	
6*1=7	6*2=8	6*3=9	6*4=10	6*5=11	6*6=12	
7*1=8	7*2=9	7*3=10	7*4=11	7*5=12	7*6=13	7*7=14	
8*1=9	8*2=10	8*3=11	8*4=12	8*5=13	8*6=14	8*7=15	8*8=16	
9*1=10	9*2=11	9*3=12	9*4=13	9*5=14	9*6=15	9*7=16	9*8=17	9*9=18	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值