Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void bubbleSortDLL(DLL<Integer> list) {
- boolean sorted = false;
- for(int i=0; i<list.length() && sorted == false; i++) {
- sorted = true;
- for(DLLNode<Integer> tmp = list.getFirst(); tmp.succ != null; tmp = tmp.succ) {
- if(tmp.element > tmp.succ.element) {
- DLLNode<Integer> n1 = tmp;
- DLLNode<Integer> n2 = tmp.succ;
- if(n1 == list.getFirst()) {
- n1.succ = n2.succ;
- n2.succ.pred = n1;
- n2.succ = n1;
- n1.pred = n2;
- n2.pred = null;
- list.setFirst(n2);
- sorted = false;
- }
- else if(n2 == list.getLast()) {
- n1.pred.succ = n2;
- n2.pred = n1.pred;
- n1.pred = n2;
- n2.succ = n1;
- n1.succ = null;
- list.setLast(n1);
- tmp = tmp.pred;
- sorted = false;
- }
- else {
- n1.pred.succ = n2;
- n2.pred = n1.pred;
- n1.pred = n2;
- n2.succ.pred = n1;
- n1.succ = n2.succ;
- n2.succ = n1;
- sorted = false;
- }
- }
- }
- }
- DLLNode<Integer> t = list.getFirst();
- while(t != null) {
- System.out.print(t + " ");
- t = t.succ;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement