input:
1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
output:
10 10 9 9 8 8 7 7 6 6 6 6 7 7 8 8 9 9 10 10
Any ideas why it is just sorting the first half?
if I output the memArray before the for loop, it shows me the correct order.
What is going wrong when i am copying memArray to array?
for (int i = 19; i >= 0; i--) {
//System.out.println("memArray[" + i + "]: " + memArray[i]);
array[k] = memArray[i];
//System.out.println("array["+k+"]: " + array[k]);
k++;
}
package com.codegym.task.task07.task0728;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
/*
In decreasing order
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int[] array = new int[20];
for (int i = 0; i < 20; i++) {
array[i] = Integer.parseInt(reader.readLine());
}
sort(array);
for (int x : array) {
System.out.println(x);
}
}
public static void sort(int[] array) {
//write your code here
int[] memArray = new int[20];
memArray = array;
Arrays.sort(memArray);
int k = 0;
for (int i = 19; i >= 0; i--) {
//System.out.println("memArray[" + i + "]: " + memArray[i]);
array[k] = memArray[i];
//System.out.println("array["+k+"]: " + array[k]);
k++;
}
/*
for (int ausgabe2: memArray) {
System.out.println(ausgabe2);
}
System.out.println("mem[0]: " + memArray[0]);
System.out.println("mem[1]: " + memArray[1]);
System.out.println("mem[2]: " + memArray[2]);
System.out.println("mem[3]: " + memArray[3]);
System.out.println("mem[4]: " + memArray[4]);
*/
//return array;
}
}