A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王震阳老师   /  2014-8-11 12:00  /  18541 人查看  /  214 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

阳哥,不是就算过期了,现在做,然后交了,不是也得一个技术分吗我的怎么没反应呢
回复 使用道具 举报
领题!!领题!!!领题!!领题!!!
回复 使用道具 举报
领题领题  
回复 使用道具 举报
顶帖,领题
回复 使用道具 举报
阳哥,领题,一次都领了:lol
回复 使用道具 举报
阳哥,领题,一次都领了:lol
回复 使用道具 举报
时间都去哪了 发表于 2014-12-9 10:27
阳哥,领题,一次都领了

到处都是你的足迹呀。
回复 使用道具 举报
老规矩,我来领题:lol
回复 使用道具 举报
领题来了,  好好看看
回复 使用道具 举报
回帖领题
回复 使用道具 举报
回帖领题10
回复 使用道具 举报
先挑学了的做。
回复 使用道具 举报
阳哥,第十期做出来了。这次可真是把我脑袋都想破了,里面的排列组合算法100%的原创,没有参考网上的也没有抄别人的,自己想了很长时间才做出来的。为了写这个,以至于我现在还没吃饭呢。求阳哥鼓励哈,我吃饭去了先 。:P

技术分活动第十期.rar

11.06 KB, 阅读权限: 200, 下载次数: 1

评分

参与人数 1技术分 +1 黑马币 +10 收起 理由
王震阳老师 + 1 + 10 很给力!

查看全部评分

回复 使用道具 举报
Little_Pea 发表于 2014-12-18 13:01
阳哥,第十期做出来了。这次可真是把我脑袋都想破了,里面的排列组合算法100%的原创,没有参考网上的也没有 ...

写的很给力,能有自己的想法是最重要的。很给力,多给你10个黑马币,作为额外的奖励。
  1. package test10;

  2. import java.util.Arrays;
  3. import java.util.Scanner;

  4. /*
  5. * 将一组数字、字母或符号进行排列,以得到不同的组合顺序。
  6. * 例如1 2 3这三个数的排列组合有:1 2 3、1 3 2、2 1 3、2 3 1、3 1 2、3 2 1。
  7. * 要求:用户输入一个整数(0到9)数组(数组长度大于等于3,小于10),
  8. * 那么请在控制台打印出该数组中所有成员的排列组合。
  9. * 详细代码+测试结果才可获得满分。
  10. */
  11. public class Test10 {

  12.         static int[] arr ;//整数数组
  13.         static int start = 0;//开始指针
  14.         static int end = 0;//结束指针
  15.        
  16.         static Scanner in = new Scanner(System.in);
  17.        
  18.         public static void main(String[] args) {
  19.                 System.out.println("请问你要输入几个数(要求大于等于3而小于10)?");
  20.                 int len = in.nextInt();
  21.                 arr = new int[len];        //用用户输入的数创建数组
  22.                 System.out.println("请输入"+len+"个整数(0~9):");
  23.                 for (int i = 0; i < len; i++) {
  24.                         arr[i] = in.nextInt();
  25.                 }
  26.                 System.out.print("你输入的整数数组是:");
  27.                 printArray(arr);
  28.                 System.out.println("其全排列如下:");
  29.                 end = arr.length-1; //将结束指针指向最后一个数
  30.                 Arrays.sort(arr);        //首先对输入数组进行排序
  31.                 arrange(arr);
  32.                 System.out.println();
  33.         }
  34.         /*
  35.          * 排列函数
  36.          * 编程思路:
  37.          * 排列其实是一个递归排序,然后交换位置的一个过程
  38.          */
  39.         public static void arrange(int[] a) {
  40.                 Arrays.sort(a, start, a.length);
  41.                 for (int i = 0; i < a.length-start; i++) {
  42.                         /*
  43.                          * 当开始指针指向倒数第二个值时,不再递归,而是打印数组中的所有元素,然后交换最后两个元素后在打印,即调用sort函数
  44.                          */
  45.                         if (start == end-1) {
  46.                                 sort(a,start,end);
  47.                                 break;
  48.                         }
  49.                         start++;
  50.                         arrange(a);
  51.                         Arrays.sort(a,start,a.length);
  52.                         //当每次循环到最后一次时,不用再交换位置,因为这时候交换要交给外层循环
  53.                         if(i != end-start) {
  54.                                 swap(a,start,start+i+1);
  55.                                 }
  56.                 }
  57.                 start--;
  58.         }
  59.        
  60.         /*
  61.          * 该函数的功能就是当开始指针指向倒数第二个元素时,打印数组,然后交换最后两个元素后再打印
  62.          */
  63.         public static void sort(int[] a, int start, int end) {
  64.                 Arrays.sort(a,start,end+1);
  65.                 printArray(a);
  66.                 swap(a, start, end);
  67.                 printArray(a);
  68.         }
  69.        
  70.         /*
  71.          * 该函数用于交换数组中的两个元素
  72.          */
  73.         public static void swap(int[] a, int m, int n) {
  74.                 int temp = a[m];
  75.                 a[m] = a[n];
  76.                 a[n] = temp;
  77.         }
  78.        
  79.         /*
  80.          * 该函数用于打印数组中的所有元素
  81.          */
  82.         public static void printArray(int[] a) {
  83.                 for (int i = 0; i < a.length; i++) {
  84.                         System.out.print(arr[i]);
  85.                 }
  86.                 System.out.println();
  87.         }

  88. }
复制代码
回复 使用道具 举报
王震阳老师 发表于 2014-12-18 15:54
写的很给力,能有自己的想法是最重要的。很给力,多给你10个黑马币,作为额外的奖励。
...

谢谢阳哥,我肯定更加努力!
回复 使用道具 举报
回帖领题
回复 使用道具 举报
用递归实现的全排列


Exam10.rar

567 Bytes, 阅读权限: 200, 下载次数: 1

评分

参与人数 1技术分 +1 收起 理由
王震阳老师 + 1 赞一个!

查看全部评分

回复 使用道具 举报
edidada 发表于 2014-12-18 23:07
用递归实现的全排列

很给力,赞一个。
回复 使用道具 举报
回帖领题
回复 使用道具 举报

Demo10.rar (644 Bytes, 下载次数: 1)

评分

参与人数 1技术分 +1 收起 理由
王震阳老师 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马