- 浏览: 27163 次
- 性别:
- 来自: 广州
最新评论
java基础部分的第六小部分知识点--…
1、递归算法题
一个整数,大于0,不用循环和本地变量,按照n,2n,4n,8n的顺序递增,当值大于5000时,把值按照指定顺序输出来。
例:n=1237
则输出为:
1237,
2474,
4948,
9896,
9896,
4948,
2474,
1237,
提示:写程序时,先致谢按递增方式的代码,写好递增的以后,再增加考虑递减部分。
public class Recursion2 {
<wbr></wbr> private static void doubleNumber(int number){
<wbr><wbr><wbr><wbr> System.</wbr></wbr></wbr></wbr>out.println(number);
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> if(number<=5000) doubleNumber(number * 2);
<wbr><wbr><wbr><wbr> System.</wbr></wbr></wbr></wbr>out.println(number);
<wbr> }</wbr>
<wbr></wbr> public static void main(String[] args) {
<wbr><wbr><wbr><wbr> Recursion2.<i>doubleNumber</i>(20);</wbr></wbr></wbr></wbr>
<wbr> }</wbr>
}
<wbr></wbr>
2、递归算法题
第1个人10岁,第2个比第1个人大2岁,依次递推,请用递归方式计算出第8个人多大?
public class Recursion {
<wbr></wbr> //第1个人10岁,第2个比第1个人大2岁,依次递推,请用递归方式计算出第8个人多大?
<wbr></wbr> private static int getAge(int number){
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> if(number == 1)return 10;
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> return getAge(number-1)+2;
<wbr> }</wbr>
<wbr></wbr> public static void main(String[] args) {
<wbr><wbr><wbr><wbr> System.</wbr></wbr></wbr></wbr>out.println(Recursion.getAge(8));
<wbr> }</wbr>
<wbr></wbr>
}
<wbr></wbr>
3、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。
<wbr></wbr>本人只研究过冒泡排序、选择排序和快速排序,下面是快速排序的代码:
public class QuickSort {
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr></wbr></wbr></wbr> public void quickSort(String[] strDatas, int left, int right) {
<wbr><wbr><wbr><wbr><wbr><wbr> String middleNumber, tempData;</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> int i = left, j = right;
<wbr><wbr><wbr><wbr><wbr><wbr> middleNumber = strDatas[(i + j) / 2];</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> do {
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr> while (strDatas[i].compareTo(middleNumber) < 0 && i < right)
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> i++;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr> // 找出左边比中间值大的数
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr> while (strDatas[j].compareTo(middleNumber) > 0 && j > left)
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> j--;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr> // 找出右边比中间值小的数
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr> if (i <= j) { // 将左边大的数和右边小的数进行替换
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> tempData = strDatas[i];</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> strDatas[i] = strDatas[j];</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> strDatas[j] = tempData;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> i++;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> j--;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr> while (i <= j); // 当两者交错时停止
<wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> if (i < right) {
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> quickSort(strDatas, i, right);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> if (j > left) {
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> quickSort(strDatas, left, j);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr> }</wbr></wbr></wbr>
<wbr></wbr>
<wbr><wbr><wbr></wbr></wbr></wbr> public static void main(String[] args) {
<wbr><wbr><wbr><wbr><wbr><wbr> String[] strVoid =</wbr></wbr></wbr></wbr></wbr></wbr> new String[] { "11", "66", "22", "0", "55", "22","0", "32" };
<wbr><wbr><wbr><wbr><wbr><wbr> QuickSort sort =</wbr></wbr></wbr></wbr></wbr></wbr> new QuickSort();
<wbr><wbr><wbr><wbr><wbr><wbr> sort.quickSort(strVoid, 0, strVoid.</wbr></wbr></wbr></wbr></wbr></wbr>length-1);
<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> for (int i = 0; i < strVoid.length; i++) {
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> System.</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>out.print(strVoid[i] + " ");
<wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr> }</wbr></wbr></wbr>
}
<wbr></wbr>
4、有数组a[n],用java代码将数组元素顺序颠倒
public class SwapDemo {
<wbr></wbr>
//有数组a[n],用java代码将数组元素顺序颠倒
<wbr><wbr><wbr></wbr></wbr></wbr> //for(int i=0,int j=a.length-1;i<j;i++,j--)是否等效于 for(int i=0;i<a.length/2;i++)呢?
<wbr><wbr><wbr></wbr></wbr></wbr> public static void swap1(int a[]){
<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> int len = a.length;
<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> for(int i=0;i<len/2;i++){<wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr> int tmp = a[i];
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> a[i] = a[len-1-i];</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> a[len-1-i] = tmp;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr> }</wbr></wbr></wbr>
<wbr><wbr><wbr></wbr></wbr></wbr> public static void swap2(int a[]){
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>int len = a.length;
<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> for(int i=0,j=len-1;i<j;i++,j--){<wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr> int tmp = a[i];
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> a[i] = a[j-i];</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> a[j-i] = tmp;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr> }</wbr></wbr></wbr>
<wbr><wbr><wbr></wbr></wbr></wbr> public static void main(String[] args) {
<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> int[] a = new int[]{1,2,3,4};
<wbr><wbr><wbr><wbr><wbr><wbr> SwapDemo.<i>swap1</i>(a);</wbr></wbr></wbr></wbr></wbr></wbr>
//<wbr><wbr><wbr><wbr> SwapDemo.swap2(a);</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> for (int i = 0; i < a.length; i++) {
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> System.</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>out.print(a[i]);
<wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr>
}
<wbr></wbr>
5.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。
public class Convert {
<wbr></wbr>
<wbr><wbr><wbr></wbr></wbr></wbr> private static final char[] data = new char[]{ '零', '壹', '贰', '叁', '肆',
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr> '伍', '陆', '柒', '捌', '玖' };
<wbr><wbr><wbr></wbr></wbr></wbr> private static final char[] units = new char[]{ '元', '拾', '佰', '仟', '万',
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr> '拾', '佰', '仟', '亿' };
<wbr></wbr>
<wbr><wbr><wbr></wbr></wbr></wbr> // 金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。
<wbr><wbr><wbr></wbr></wbr></wbr> public static String convert(int money) {
<wbr><wbr><wbr><wbr><wbr><wbr> StringBuffer sbf =</wbr></wbr></wbr></wbr></wbr></wbr> new StringBuffer();
<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> int unit = 0;
<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> while (money != 0) {<wbr></wbr> //110
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> System.</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>out.println("unit--->:" + unit);
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> sbf.insert(0,</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr> units[unit++]);
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> System.</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>out.println("sbf--->:" + sbf.toString());
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr> int number = money % 10;
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> System.</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>out.println("number--->" + number);
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> sbf.insert(0,</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr> data[number]);
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> System.</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>out.println("sbf---->:" + sbf.toString());
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> money /= 10;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> System.</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>out.println("money---->:" + money);
<wbr><wbr><wbr><wbr><wbr><wbr><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>// 去零代码
<wbr><wbr><wbr><wbr><wbr><wbr><wbr>String result = sbf.toString().replaceAll(</wbr></wbr></wbr></wbr></wbr></wbr></wbr>"零[拾佰仟]", "零")
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> .replaceAll(</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>"零+万", "万").replaceAll("零+元", "元")
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> .replaceAll(</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>"零+", "零");
<wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>// System.out.println("sbf.reverse:" + sbf.reverse().toString());
<wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>//sbf.reverse()--->反正字符串
<wbr><wbr><wbr><wbr><wbr><wbr><wbr>System.</wbr></wbr></wbr></wbr></wbr></wbr></wbr>out.println(sbf.toString());
<wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>return result;
<wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr>
<wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr> public static void main(String[] args) {
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> System.</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>out.println(Convert.convert(110));
<wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr>
}
相关推荐
Java知识点总结 48 一 布尔类型 48 二 强转 48 三 运算符: 49 1 关系运算符: 49 2 逻辑运算符 49 3 算数运算符: 49 4 赋值运算符: 49 5 连接符 : 49 四 if判断 49 (1)if语法: 49 (2)if else语法: 50...
Java 基础知识点总结 通过对 Java 基础第二天练习 2 的分析,我们可以总结出以下知识点: 1. 变量交换:在 Java ...这些知识点都是 Java 基础知识点中的重要组成部分,我们需要熟练掌握这些知识点来更好地学习 Java。
� Google 提供了一套 Java 核心包 (J2SE 5,J2SE 6) 的有限子集,尚不承诺遵守 Java 任何 Java 规范 , 可能会造 成J ava 阵营的进一步分裂。 � 现有应用完善度不太够,需要的开发工作量较大。--------------------...
首先,知识方面,经过大二上 学期一学期的学习,让我们对java的基础知识和操作环境和平台有了初步的了解和认识 ,但是这次设计中还是遇到了很多问题,尤其是数据库的创建和连接部分,由于以前接 触这部分知识比较少...
Java高级程序设计 第1章 Java编码规范 1.1 应用场景1.2 相关知识1.3 任务实施1.4 拓展知识1.5 拓展训练1.6课后小结 Java高级程序设计实战教程第一章-Java编码规范全文共13页,当前为第1页。 1.1 应用场景 一个大型的...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
知识点6:ArcGIS Engine SDK for Java 的开发思路 在开发 ArcGIS Engine SDK for Java 应用程序时,需要熟悉 ArcGIS 各组件的功能,了解各种操作的设计思路,拿着各种文档顺藤摸瓜,才能迅速进入开发角色的。整个 ...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
6) 平缓的学习曲线:学习使用JessMA只需掌握一定的Core Java与JSP/Servlet知识,本开发手册会循序渐进阐述每个知识点,每个知识点都会结合完整的示例进行讲述,知识点之间前后呼应,确保学习者在学习时温故知新,...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
对知识点的总结以及内容的全面性也使得《Java程序设计习题集》具有一定的手册特性,非常适合复习,同时也方便教师出题,使得各章节的试题容易在试卷中分布均匀合理。在本习题集中的编程题和趣味题还有可能采用其他...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
第6章 Java的类(Class)和对象(Object) 132 教学视频:59分钟 6.1 驾驶汽车向类(Class)的世界进发 132 6.1.1 汽车带来的问题 132 6.1.1 类的组成 134 6.1.3 使用自定义的Car类 136 6.1.4 类和对象 139 ...