给出一数组  int[] array = {10,5,23,12,7,16,21,8,35,21,15} 
对其进行排顺 要求是第1位是最大,第2位是最小,第3位为剩下的最大,第4是剩下的最小,一直按这样排下去 ?
如果排序法?请各位大虾指点,数据结构方面太薄弱了

解决方案 »

  1.   

    我也是刚学,就试着写了一些,还能运行,呵呵,希望对你有帮助哦有不对的地方还请指教,呵呵  package net_Exe;import java.util.*;public class Net_Array 
    {
    public static void main(String[] args)
    {
    int[] array = {10,5,23,12,7,16,21,8,35,21,15,30};   
    int flag=0;       //flag=0时打印大的,flag=1时打印小的
    int j=0,k=0;

    Arrays.sort(array);     //从小到大排序

    for(int i=0;i<=array.length -1;i++)
    {
    if(flag==0)
    {
    System.out.print(array[array.length -1-j]+" ");
    flag=1;
    j++;
    }
    else if(flag==1)
    {
    System.out.print(array[k]+" ");
    flag=0;
    k++;
    }
    }

    }
    }
      

  2.   

    用java类库的sort()不就行了
      

  3.   

    /*给出一数组     int[]   array   =   {10,5,23,12,7,16,21,8,35,21,15}  
     对其进行排顺   要求是第1位是最大,第2位是最小,第3位为剩下的最大,第4是剩下的最小,一直按这样排下去?
     如果排序法?请各位大虾指点,数据结构方面太薄弱了*/public class Test_1 
    { int[] array = { 10, 5, 23, 12, 7, 16, 21, 8, 35, 21, 15 }; int temp; int k = 1; public void a() 
    {
    for (int i = 0; i < array.length; i++) 
    {
    k += 1;
    for (int j = i + 1; j < array.length; j++)
    {
    if (k % 2 == 0) 
    {
    if (array[i] < array[j])
    {
    temp = array[i];
    array[i] = array[j];
    array[j] = temp;
    }

    else 
    {
    if (array[i] > array[j])
    {
    temp = array[i];
    array[i] = array[j];
    array[j] = temp;
    }
    }
    }
    System.out.print(array[i] + " ");
    }
    System.out.println();
    } public static void main(String[] args) 
    {
    Test_1 t1 = new Test_1();
    t1.a();
    }
    }