Input array: [200, 8, 10, 60, 30, 80];
Output am getting: [200, 10, 60, 80, 30, 8];
Output required: [200, 60, 80, 8, 10, 30];
Цель : если элемент массива меньше 50, переместите его в нижнюю часть массива, но сохраняйте порядок массива (сдвигая влево перед вставкой элемента меньше 50 в нижнюю часть) , Пример как показано выше.
Проблемы
1. Несмотря на то, что 10 меньше 50, оно все еще не сдвинуто вниз.
2. 8 должно быть до 30, потому что он будет перемещен сначала вниз, а затем 30 будет перемещен. Но 8 в конце.
Мой код Java:
import java.util.*;
public class chapte1_17
{
public static void main(String[] args)
{
int list[] = new int[] {200, 8, 10, 60, 30, 80};
int length = list.length;
int value = 50;
int temp;
//System.out.println(length);
for ( int i = 0 ; i < list.length ; i++ )
{
if (list[i] < value) {
int remIndex = i;
temp = list[i];
//System.out.println(remIndex);
//System.out.println(temp);
for ( int j = remIndex ; j < list.length - 1 ; j++ )
{
list[ j ] = list[ j + 1 ] ;
}
list[list.length -1] = temp;
}
System.out.println(list[i] + "");
}
}
}
Я новичок в сортировке и Java - любая помощь будет оценена.