-5

I want to sort the numbers so that the output is: [12,9,8,7,5,4,3,1] Please help ;)

int[] array = new int[]{8,5,3,7,9,12,4,1};
int biggest = 0;
for (int i =0; i<array.length;i++){
    if(array[i]>biggest){
        biggest = array[i];
    }
}
System.out.println(biggest); //Outputs 12
ΦXocę 웃 Пepeúpa ツ
  • 47,427
  • 17
  • 69
  • 97
luukcollin
  • 31
  • 1
  • 7

3 Answers3

2

Use streams in java 8:

int[] array = new int[]{8,5,3,7,9,12,4,1};
int max = Arrays.stream(array).max().getAsInt();
ΦXocę 웃 Пepeúpa ツ
  • 47,427
  • 17
  • 69
  • 97
1

Try this:

    int[] array = new int[]{8,5,3,7,9,12,4,1};
    Arrays.sort(array);
    for (int i =array.length -1; i>=0;i--){
      System.out.println(array[i]);
    }

And with streams:

int[] array = new int[]{8,5,3,7,9,12,4,1};
Arrays.stream(array).boxed()
    .sorted(Comparator.reverseOrder()).forEach(System.out::println);
iMysak
  • 2,170
  • 1
  • 22
  • 35
0

Use the bubble sort to organize the array:

int a, b, t;
int size = array.length;

for(a=1; a < size; a++)
    for(b=size-1; b >= a; b--){
        if(array[b-1] > array[b]){ //If out of order
           t = array[b-1];
           array[b-1] = array[b];
           array[b] = t;
          }
   }

then reverse the order so it's highest to lowest:

  for(int i = 0; i < array.length / 2; i++)
    {
        int temp = array[i];
        array[i] = array[array.length - i - 1];
        array[array.length - i - 1] = temp;
    }
Cardinal System
  • 2,749
  • 3
  • 21
  • 42