-2
大学で、ID番号を使用して学生を分類するタスクがあります。グループ番号でを並べ替えた後、バブルソートを使用して並べ替えます。私のソート方法では何も並べ替えられません。 私は必要なデータを持つStudentクラス、Student型配列を持つSortingsクラスを作成しました。そして私は、ソートのインスタンスを作成し、ソートのための静的メソッドを呼び出すメインクラスで、このタイプのソートのための静的メソッドを持っています。インデックスで並べ替え
public static void index_Sort(Student[]st, int []a)
{
int temp;
for(int k = 0; k < a.length; k++)
{
for(int i = k+1; i < a.length; i++)
{
if(st[a[k]].get_ID() > st[a[i]].get_ID())
{
temp = a[k];
a[k] = a[i];
a[i] = temp;
}
}
}
}
メインクラス
int index[] = {0,1,2,3,4,5};
Student s_arr[] = new Student[6];
s_arr[0] = st; //s_arr.add(st)
s_arr[1] = st1;
s_arr[2] = st2;
s_arr[3] = st3;
s_arr[4] = st4;
s_arr[5] = st5;
System.out.println("__________SORT BY INDEX __________");
index_Sort(new_sort.st,index);
あなたは、変数の値が変更見て、デバッガでコードをステップ実行しようとしたことがありますか?これは何が起こっているのかを理解する方法です。 –
あなたはStudents配列( 'Student [] st')を並べ替えていないので、あなたはint配列(' int [] a')を並べ替えています。 – Berger
あなたのメソッドは現在、idによって降順にソートされています(id [k]> id [i]、k> i)。それだけでなく、Bergerがすでに指摘しているように、あなたは 'index'をソートしているので、間違った配列を見ているかもしれません。 – Thomas