2016-03-30 35 views
-2

dizisindeki değerlerine göre sıralamak için Diziyi değerlere göre aynı konumda sıralamalıyım. Örnek için :Bir diziyi java

değerler = {5, 1, 4}

elde edilen seviye dizi olacaktır: {1, 3, 2}

nasıl dizi sıralama olmadan elde edebilirsiniz?

+0

bir şey denediniz mi? –

+1

buraya gelip kendi problemlerini çözmemizi istediğimiz soruyu – redFIVE

+0

sadece sıralama tekniğini biliyorum ama bilmeden nasıl yapılacağını bilmiyorum – Vanitha

cevap

3

Böyle bir şey yazmalıyım:

public static int[] getRanksArray(int[] array) { 
    int[] result = new int[array.length]; 

    for (int i = 0; i < array.length; i++) { 
     int count = 0; 
     for (int j = 0; j < array.length; j++) { 
      if (array[j] > array[i]) { 
       count++; 
      } 
     } 
     result[i] = count + 1; 
    } 
    return result; 
} 

bu yöntem endeksi (değerler eşitse onlar bir ortak rütbe paylaşan)

You girdi dizisindeki değer endeksi tekabül sýralamalý dizi döndürür sıralama kullanamaz, bu yüzden O (NxN) asimptotik karmaşıklığı ve önlemek için herhangi bir yol göremiyorum O (K) yardımcı uzay :(

+0

dizisi değerine göre sıralamak zorunda teşekkür ederim efendim bunu deneyeceğim – Vanitha

+0

O (n) zamanında Ranks dizisi almak mümkün mü? –