黑马程序员技术交流社区

标题: 排序后,返回原顺序的角标 [打印本页]

作者: 谢晓明    时间: 2015-5-27 21:46
标题: 排序后,返回原顺序的角标
package cn.itcast;

public class IndexSort {
        public static int[] indexSort(int[] arr) {
                int[] index = new int[arr.length];
                for (int i = 0; i < index.length; i++) {
                        index[i] = i;
                }

                for (int i = 0; i < arr.length - 1; i++) {
                        // 内循环控制每次比较中,元素两两比较的过程。每次需要比较的数据是逐渐减少的。
                        for (int j = 0; j < arr.length - 1 - i; j++) {
                                // 比较相邻元素,如果前面的大,进行交换
                                if (arr[j] > arr[j + 1]) {
                                        int temp = arr[j];
                                        arr[j] = arr[j + 1];
                                        arr[j + 1] = temp;
                                        temp = index[j];
                                        index[j] = index[j + 1];
                                        index[j + 1] = temp;
                                }
                        }
                }
                return index;
        }
}

作者: 谢晓明    时间: 2015-5-27 21:48
如: [8,6,9]排序后 [6,8,9]
角标 [0,1,2]排序后 [1,0,2]
作者: wwb1105    时间: 2015-5-27 22:14
学习学习!!!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2