写java程序的问题,急啊,追加分

来源:百度知道 编辑:UC知道 时间:2024/06/08 00:13:18
要用到array,iterative和comparison这些表达式和办法。输入一组数字比如:7 16 5 2 9 13 4 19. 第一个输出是 [7 16 5 2 9 13 4 19],第二个输出是[16 7 5 2 13 9 19 4],(就是每两个比大小,大的换到前面). 第三个输出是
[16 7 5 2 19 4 13 9],(16和7这组最大的与5和2这组最大的比,大的换到前面,后面四个数同理).第四个输出[19 4 13 16 2 7 5 9],(这一步就是我看不懂的规律了).
请大家帮忙吧,最好程序帮我写出来看看,真的很急啊,帮我解决了,小弟追加分以报此恩啊!
1 要一个import java.util.Scanner 因为可以输入任意数值,(之前我写的那组数值只是个例子).2 第一个输出要和输入的数值一样只不过加了个"[]".3第二个输出就要把每两个数值比较大小,大的排前(就是arry[0] 比较array[1],array[2]比较arry [3],两两相比以此类推).3.第三个输出是:之前是两数值个为一组吧,现在是分成两大组,前四个数为一大组,后四个为一大组,每一大组中有两小组(小组就是第二个输出得的),小组在到自己的大组和另一小组比较看谁的最大数大,那小组就排前面.4第四个输出:这八个数变成一个组了,互相比较大小,有最大数的那个小组的两个数排前两位,接着就是此数所在大组B(设置名称好解释)的另一小组的最大数排其后,另一大组A的最大数排其后,A大组的第二大的数值们 (有两个)转换到B大组在第三个输出时的第二大的数值们的位置(也就是arry[5],arry[6]的位置)而B大组中最小组中的最小数还是排在最后, 还剩下的一个位置(arry[4])就是给A大组最小组中的最小数的了.

//我想吃西瓜
package sort;

import java.util.Scanner;

public class NumArray
{

int A[] =
{ 6, 17, 4, 1, 9, 12, 3, 18 };

// { 7, 16, 5, 2, 9, 13, 4, 19 };

int n = 8;// total count of items

int a = 3;// log(n)/log(2)

int a2d[][] = null;// a 2 dimension array of A

int grpCount = 0;

int subCount = 0;

public void input()
{

Scanner in = new Scanner(System.in);
boolean inputOK = false;

do
{
System.out.println("Please input total no you want to input(eg 2,4,8..):");
this.n = in.nextInt();
double diff = 0d;

diff = Math.log(n) / Math.log(2)
- (int) (Math.log(n) / Math.log(2));

if (diff > 0.00001)
{
System.out.println("The input must be 2 power of.(eg 2,4,8..)");
} else
{
inputOK = true;
}