public static void method1(int[] array) {
// 先排序
for (int i = 0 i < array.length i++) {
for (int j = i + 1 j < array.length j++) {
if(array[i] > array[j]) {
int c = array[i]
array[i] = array[j]
array[j] = c
}
}
}
// 第0位不变,2n位与2n-1位互换
for (int i = 2 i < array.length 宴者i += 2) {
int c = array[i]
array[i] = array[i - 1]
array[i - 1] = c
}
}
上面的方法先将数组排序,然后再把拆胡除0外的第2n位与2n-1位互换,这样可以保证奇数位的数总比两边的数字大,可以满足公式
//第二种方法public static void method2(int[] array) {
// 直接按0,2,1,4,3,6,5,8,7...的顺序排序
for (int i = 0 i < array.length i = nextIndex(i)) {
for (int j = nextIndex(i) j < array.length j = nextIndex(j)) {
if(array[i] > array[j]) {
int c = array[i]
array[i] = array[j]
array[j] = c
}
}
}
}
public static int nextIndex(int i) {
return i == 0 ? i + 2 : (i % 2 == 0 ? i - 1 : i + 3)
}
第二种方法在排序时直接采用除0外的第2n位与2n-1位互换的顺序排序
public static void main(String[] args) {int[] array = new int[] { 1, 5, 3, 4, 7, 5 }
method1(array)
for (int i = 0 i < array.length i++) {
System.out.print(i == 0 ? "" : ( i % 2 == 0 ? ">=" : "<="))
System.out.print(array[i])
}
}
结果:1<=4>=3<=5>=5<=7
虽然结果与例子不一样,但也能满足晌御薯公式需求
public class Monkey{
public static void main(String[] args)
{
int sum=0,remain=1
//每天吃燃笑剩的桃子加一个正好是前一天桃子的一半,每天桃子的总数就是前一天剩下桃子的闷段陪数量
for(int day=9day>=1day--)
{
sum=(remain+1)*2
remain=sum
System.out.println("第"+day+"天还剩"蚂蠢+remain+"个桃子")
}
System.out.println(sum)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)