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.最初に下に移動して30を移動するため、8は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に新しいです - 任意の助けいただければ幸いです。
':
2つ目は、このような何かをしようと、移動のロジックですあなたのロジックごとに...どこが間違っているのかを知ることになるでしょう... –