为了促进互帮互相,决定成立学习小组。小组结伴的规则是这样的:先将学号按升序排列,排在最前的一个人和排在最后的那个人结成同伴,排在第2个的与排在倒数第2个的结成同伴…依次类推,2个一组成同伴。
第一行是一个整数n,表明n个同学。(2<=n<=50,n为偶数) 。 第二行n个整数表明n个同学的学号,学号之间有一个空格,学号是无序输入的。 如果输入的学生数是奇数,则输出提示信息:“odd number”
共n/2行,每行二个整数,表明结伴同学的学号,两个学号之间有一个空格。
8 15 6 24 12 13 21 8 4
4 24 6 21 8 15 12 13
本道题关键难点在于全排列,排序排好之后,将第0个与最后一个,第1个与最后一个-1个输出就完成了。 排序 排序算法对于初学者有一些难度,这里提供链接十大经典排序算法最强总结,感兴趣的可以自己思考,这里讲述最基础和最取巧的两种办法。 最基础的办法是冒泡排序
int[] intArray = new int[]{11, 41, 5, 451, 2, 21, 122, 535, 352}; for (int i = 0; i < intArray.length; i++) { for (int j = 0; j < intArray.length - 1 - i; j++) { if (intArray[j] > intArray[j + 1]) { intArray[j] ^= intArray[j + 1]; intArray[j + 1] ^= intArray[j]; intArray[j] ^= intArray[j + 1]; // 两次异或交换数值,仅限整形 } } } System.out.println(Arrays.toString(intArray));最取巧的办法直接用java自带的Arrays#sort方法 Arrays#sort方法在JDK很早的版本就已经存在,比赛中基本都可以用的出来,而sort的本质是一个二分排序,性能比冒泡会更加优秀,可以放心使用