2016-10-22 5 views
-3

配列の最初のk個の要素を昇順で降順で並べ替えます。配列の最初のk要素を昇順にソートし、JAVAで降順に並べ替えるにはどうすればよいですか?

Example : 
Input - { 9 3 2 8 7 4 1 5 6 } 
for **k = 4** 
Output - { 2 3 8 9 7 6 5 4 1 } 
+2

を降順で最後まで

昇順であり、kにおけるk点で最大//ソート要素お願いします? – GrandMasterFlush

+0

私はこれがあなたの宿題だと思います。あなた自身で何かを試してみてください。 – sunkuet02

+0

プログラムは、インデックス0からk-1まで昇順、次にkから1に降順の2つの並べ替えを行うことができます。 – rcgldr

答えて

0

javaでは、以下のコードスニペットを使用できます。

1)最初に昇順で降順に並べ替えます。

パッケージアレイ; パブリッククラスソートあなたがそれを含めるようにあなたの質問を編集することができますどのようなコードを使用すると、これまでに書かれている、{

static int[] sortArrayAsc(int[] arr, int initial,int finalvalue) 
{ 

// System.out.println("initial="+initial+" "+"final="+finalvalue); 

    while(initial!=finalvalue) 
    { 
     int index=findMinimum(arr,initial,finalvalue); 
//  System.out.println("index="+index); 
//  System.out.println("arr value at index="+arr[index]); 
     int temp=arr[initial]; 
     arr[initial]=arr[index]; 
     arr[index]=temp; 
     initial++; 
    } 

    return arr; 
} 

static int[] sortArrayDsc(int[] arr, int initial,int finalvalue) 
    { 
    System.out.println("initial="+initial+" "+"final="+finalvalue); 

     while(finalvalue!=initial) 
     { 
      int index=findMinimum(arr,initial,finalvalue); 
     // System.out.println("index="+index); 
     // System.out.println("arr value at index="+arr[index]); 
      int temp=arr[finalvalue]; 
      arr[finalvalue]=arr[index]; 
      arr[index]=temp; 
      finalvalue--; 
     } 
     return arr; 
    } 

static int findMinimum(int[] arr,int initial,int finalvalue) 
{ 
    int index = initial; 
    int minimum=initial; 
    while(index!=finalvalue-1) 
    { 
     if(arr[index+1]<arr[minimum]) 
     { 
      minimum=index+1; 
     } 
     index++; 
    } 

    return minimum; 
} 

static void print(int[] arr) 
{ 
    System.out.println(""); 
    for(int i=0;i<arr.length;i++) 
    { 
     System.out.print(arr[i]+" "); 
    } 

} 

public static void main(String[] args) 
{ 

    int[] arr={42,12,5,55,6,61,3,59,32,1,8}; 
    int k=4; 
    //result should be 5,12,42,55,61,59,32,8,6,3,1 

    arr=sortArrayAsc(arr,0,4); 

    print(arr); 
    arr=sortArrayDsc(arr,4,arr.length-1); 
    print(arr); 
} 

}

関連する問題