java面试常见到的算法.doc_第1页
java面试常见到的算法.doc_第2页
java面试常见到的算法.doc_第3页
java面试常见到的算法.doc_第4页
java面试常见到的算法.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java面试中遇到的一些经典算法题目1.写一个方法,用一个for循环打印九九乘法表 /* */* * 打印九九乘法口诀表 */ public void nineNineMulitTable() for (int i = 1,j = 1; j = 9; i+) System.out.print(i+*+j+=+i*j+ ); if(i=j) i=0; j+; System.out.println(); 2.给定一个java.util.Date对象,如何转化为”2007-3-22 20:23:22”格式的字符串 /* */* * 将某个日期以固定格式转化成字符串 * param date * return str */ public String date2FormatStr(Date date) SimpleDateFormat sdf = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss); String str = sdf.format(date); return str; 3.写一个方法,能够判断任意一个整数是否素数 /* */* * 判断任意一个整数是否素数 * param num * return boolean */ public boolean isPrimeNumber(int num) for (int i = 2; i = Math.sqrt(num); i+) if(num%i=0) return false; return true; 4.写一个方法,输入任意一个整数,返回它的阶乘 /* */* *获得任意一个整数的阶乘 *param n *returnn! */ public int factorial(int num) /递归 if(num = 1) return 1; return num*factorial(num-1); 5.写一个方法,用二分查找法判断任意整数在任意整数数组里面是否存在,若存在就返回它在数组中的索引位置,不存在返回-1 /* */* *二分查找特定整数在整型数组中的位置(递归) *param dataset *param data *param beginIndex *param endIndex *return index */ public int binarySearch(int dataset,int data,int beginIndex,int endIndex) int midIndex = (beginIndex+endIndex)/2; /如果查找的数要比开始索引的数据要小或者是比结束索引的书要大,或者开始查找的索引值大于结束的索引值返回-1没有查到 if(data datasetendIndex|beginIndexendIndex) return -1; if(data datasetmidIndex) return binarySearch(dataset,data,midIndex+1,endIndex); else return midIndex; /* */* *二分查找特定整数在整型数组中的位置(非递归) *param dataset *param data *return index */ public int binarySearch(int dataset ,int data) int beginIndex = 0; int endIndex = dataset.length - 1; int midIndex = -1; if(data datasetendIndex|beginIndexendIndex) return -1; while(beginIndex = endIndex) midIndex = (beginIndex+endIndex)/2; if(data datasetmidIndex) beginIndex = midIndex+1; else return midIndex; return -1; 一,冒泡排序:package com.sort;import java.util.Random;public class No1Maopao public static void main(String args) Random rd = new Random();/生成随即数组 int src = new int10; for(int i=0;i10;i+) srci=rd.nextInt(100); /排序前打印数组所有元素 for(int i:src) System.out.println(i); System.out.println(-可爱的分割线-); src = sort(src);/排序后打印数组所有元素 for(int i:src) System.out.println(i); public static int sort(int src) for (int i = 0; i src.length; i+) for(int j=i;jsrc.length;j+) if(srcjsrci) int temp = srcj; srcj=srci; srci=temp; return src; 二、选择排序:package com.sort;import java.util.Random;public class No2XuanZhe public static void main(String args) Random rd = new Random(); int src = new int10; for (int i = 0; i 10; i+) srci = rd.nextInt(100); for (int i : src) System.out.println(i); System.out.println(-可爱的分割线-); src = sort(src); for (int i : src) System.out.println(i); public static int sort(int src) int min; for (int i = 0; i src.length; i+) min = srci; for (int j = i + 1; j src.length; j+) if (srcj min) min = srcj; int temp = srci; srci = srcj; srcj = temp; return src; 三、插入排序:package com.sort;import java.util.Random;public class No3ChaRu public static void main(String args) Random rd = new Random(); int src = new int10; for (int i = 0; i 10; i+) srci = rd.nextInt(100); for (int i : src) System.out.println(i); System.out.println(-可爱的分割线-); src = sort(src); for (int i : src) System.out.println(i); public static int sort(int src) int in, out; for (in = 1; in 0 & srcout - 1 = temp) srcout = srcout - 1; -out; srcout = temp; return src; 四、希尔排序:package com.sort;import java.util.Random;public class No4Xier public static void main(String args) Random rd = new Random(); int src = new int10; for (int i = 0; i 10; i+) srci = rd.nextInt(100); for (int i : src) System.out.println(i); System.out.println(-可爱的分割线-); src = sort(src); for (int i : src) System.out.println(i); public static int sort(int src) int len = src.length; int temp, i, j; int h = 1; while (h 0) for (i = h; i h - 1 & srcj - h = temp) srcj = srcj - h; j -= h; srcj = temp; h = (h - 1) / 3; return src; 五、快速排序:public class No5Kuaisu public static void quickSort(int array) quickSort(array, 0, array.length - 1); private static void quickSort(int array, int low, int high) if (low high) int p = partition(array, low, high); quickSort(array, low, p - 1); quickSort(array, p + 1, high); private static int partition(int array, int low, int high) int s = arrayhigh; int i = low - 1; for (int j = low; j high; j+) if (arrayj s) i+; swap(array, i, j); swap(array, +i, high); return i; private static void swap(int array, int i, int j) int temp; temp = arrayi; arrayi = arrayj; arrayj = temp; public static void main(String args) Random rd = new Random(); int src = new int10; for (int i = 0; i 10; i+) srci = rd.nextInt(100); for (int i : src) System.out.println(i); System.out.println(-可爱的分割线-); quickSort(src); for (int i : src) System.out.println(i); System.out.println(-可爱的分割线-); 输入几个符号 (每个符号是由任意可见字符组成的字符串), 输出这些符号的全部组合.如:VLTest s abc, bc, efg 回车输出:abc,bc,efg, abcbc, abcefg, bcefg, abcbcefg.注意: 输入符号个数不固定, 输出的组合中不计顺序,即abcefg 与efgabc 属于同一个结果/Java实现:public class Test public static void main(String args) int num = args.length;for (int i = 1; i = num; i+) Combine(args, i);private static void Combine(String input, int num) String b = ;Combine(input, num, b, 0, input.length);private static void Combine(String a, int num, String b, int low, int high) if (num = 0) System.out

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论