Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Color implements Comparable {
- private int number;
- private int color;
- // (snip ctor, setters, etc.)
- public int getNumber() {
- return number;
- }
- public int getColor() {
- return color;
- }
- public int compareTo(Color other) {
- if (this.getNumber() == other.getNumber) {
- return 0;
- } else if (this.getNumber() > other.getNumber) {
- return 1;
- } else {
- return -1;
- }
- }
- }
- extra = [0,1,...,numbers.length-1]
- int ptr[] = { 1, 2, 3 };
- for (int i = 0; i < ptr.length; i++)
- {
- printf("%d %dn", numbers[ptr[i]], colors[ptr[i]]);
- }
- public class Sort {
- private static void printTable(String caption, Integer[] numbers,
- Integer[] colors, Integer[] sortOrder){
- System.out.println(caption+
- "nNo Num Color"+
- "n----------------");
- for(int i=0;i<sortOrder.length;i++){
- System.out.printf("%x %d %dn",
- i,numbers[sortOrder[i]],colors[sortOrder[i]]);
- }
- }
- public static void main(String[] args) {
- final Integer[] numbers = {1,4,3,4,2,6};
- final Integer[] colors = {0x50,0x34,0x00,0xfe,0xff,0xff};
- Integer[] sortOrder = new Integer[numbers.length];
- // Create index array.
- for(int i=0; i<sortOrder.length; i++){
- sortOrder[i] = i;
- }
- printTable("nNot sorted",numbers, colors, sortOrder);
- Arrays.sort(sortOrder,new Comparator<Integer>() {
- public int compare(Integer a, Integer b){
- return numbers[b]-numbers[a];
- }});
- printTable("nSorted by numbers",numbers, colors, sortOrder);
- Arrays.sort(sortOrder,new Comparator<Integer>() {
- public int compare(Integer a, Integer b){
- return colors[b]-colors[a];
- }});
- printTable("nSorted by colors",numbers, colors, sortOrder);
- }
- }
- public class Sort {
- private static void printTable(String caption, Integer[] numbers,
- Integer[] colors, Integer[] sortOrder){
- System.out.println(caption+
- "nNo Num Color"+
- "n----------------");
- for(int i=0;i<sortOrder.length;i++){
- System.out.printf("%x %d %dn",
- i,numbers[sortOrder[i]],colors[sortOrder[i]]);
- }
- }
- public static void main(String[] args) {
- final Integer[] numbers = {1,4,3,4,2,6};
- final Integer[] colors = {0x50,0x34,0x00,0xfe,0xff,0xff};
- Integer[] sortOrder = new Integer[numbers.length];
- // Create index array.
- for(int i=0; i<sortOrder.length; i++){
- sortOrder[i] = i;
- }
- printTable("nNot sorted",numbers, colors, sortOrder);
- Arrays.sort(sortOrder,new Comparator<Integer>() {
- public int compare(Integer a, Integer b){
- return numbers[b]-numbers[a];
- }});
- printTable("nSorted by numbers",numbers, colors, sortOrder);
- Arrays.sort(sortOrder,new Comparator<Integer>() {
- public int compare(Integer a, Integer b){
- return colors[b]-colors[a];
- }});
- printTable("nSorted by colors",numbers, colors, sortOrder);
- }
- }
Add Comment
Please, Sign In to add comment