按java中的索引排序

时间:2016-03-23 15:19:32

标签: java eclipse sorting

我在大学里有一项任务,我需要使用按索引排序按照冒泡排序按组编号对其进行排序。我的排序方法不会对所有内容进行排序。 我创建了一个带有必要数据的Student类,带有Student类型数组的Sortings类。我在主类中有这种类型的排序的静态方法,我在其中创建一个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);

1 个答案:

答案 0 :(得分:1)

您没有对学生数组对象进行排序。

您正在对int数组进行排序&#39; a&#39;。

public static void index_Sort(Student[]st)
{
Student temp;
int len = st.length;
for(int k = 0; k < len -1 ; k++)
{
    for(int i = k+1; i < len ; i++)
    {
        if(st[k].get_ID() > st[i].get_ID() )
        {
            temp = st[k];
            st[k] = st[i];
            st[i] = temp;
        }
    }
}
}

主要课程:

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(s_arr);