日期:2014-05-20  浏览次数:20747 次

Java数组排序
有两个数组,int[] a,int[] b,数组a和数组b是有联系的,就是数组a中的第一个元素对应数组b中的第一个元素,数组a中的第二个元素对应数组b中的第二个元素,以此类推,现在我想对数组a进行排序,从小到大排列,数组b也要对应变化,数组b不一定要从小到大,数组a和数组b之间的关系不能破坏,要怎么进行排序。
Java 数组

------解决方案--------------------
import java.util.Arrays;

public class Hello {
    public static void main(String[] args) throws Exception {
        int[] a = {2, 1, 5, 4};
        int[] b = {1, 2, 3, 4};

        // 选择法排序
        for (int i = 0; i < a.length - 1; ++i) {
            int k = i;
            for (int j = i + 1; j < a.length; ++j) {
                if (a[j] < a[k]) {
                    // 找出最小元素的下标
                    k = j;
                }
            }

            if (i != k) {
                // 交互数组a中的元素时对应的交换数组b中的元素.
                int temp = a[i];
                a[i] = a[k];
                a[k] = temp;

                temp = b[i];
                b[i] = b[k];
                b[k] = temp;
            }
        }

        System.out.println(Arrays.toString(a));
        System.out.println(Arrays.toString(b));
    }
}