Mercurial > jhg
comparison src/org/tmatesoft/hg/internal/ArrayHelper.java @ 310:237de162be28
Fix building sort reverse array when element was initially in correct position.
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Sat, 24 Sep 2011 13:25:33 +0200 |
parents | 2f2ab5c27f41 |
children | b9592e21176a |
comparison
equal
deleted
inserted
replaced
309:962f78aac342 | 310:237de162be28 |
---|---|
27 @SuppressWarnings("unchecked") | 27 @SuppressWarnings("unchecked") |
28 public void sort(Comparable<?>[] a) { | 28 public void sort(Comparable<?>[] a) { |
29 // Object[] aux = (Object[]) a.clone(); | 29 // Object[] aux = (Object[]) a.clone(); |
30 reverse = new int[a.length]; | 30 reverse = new int[a.length]; |
31 sort1((Comparable<Object>[])a, 0, a.length); | 31 sort1((Comparable<Object>[])a, 0, a.length); |
32 for (int i = 0; i < reverse.length; i++) { | |
33 // element that was not moved don't have an index in reverse. | |
34 // perhaps, can do it inside sort alg? | |
35 // TODO tests! | |
36 if (reverse[i] == 0) { | |
37 reverse[i] = i+1; | |
38 } | |
39 } | |
32 } | 40 } |
33 | 41 |
34 private void sort1(Comparable<Object> x[], int off, int len) { | 42 private void sort1(Comparable<Object> x[], int off, int len) { |
35 // Insertion sort on smallest arrays | 43 // Insertion sort on smallest arrays |
36 if (len < 7) { | 44 if (len < 7) { |