Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static List<Wall> qsort(List<Wall> input) {
- if (input.size() <= 1) {
- return input;
- }
- int middle = (int) Math.ceil((double) input.size() / 2);
- Wall pivot = input.get(middle);
- List<Wall> less = new ArrayList<Wall>();
- List<Wall> greater = new ArrayList<Wall>();
- for (int i = 0; i < input.size(); i++) {
- if (input.get(i).effeciency >= pivot.effeciency) {
- if (i == middle) {
- continue;
- }
- less.add(input.get(i));
- } else {
- greater.add(input.get(i));
- }
- }
- return concatenate(qsort(less), pivot, qsort(greater));
- }
- private static List<Wall> concatenate(List<Wall> less, Wall pivot, List<Wall> greater) {
- List<Wall> list = new ArrayList<>();
- for (int i = 0; i < less.size(); i++) {
- list.add(less.get(i));
- }
- list.add(pivot);
- for (int i = 0; i < greater.size(); i++) {
- list.add(greater.get(i));
- }
- return list;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement