how to quicksort in doublylinked list in java

Viewed 25

how to sort doubly linked list as quick sort in java? i want to use pivot as my middle Node.

this is my partition code

public Node partition(Node left, Node right) {
Node pivot = (Node) peek(5);
Node p = left.getPrev();
for(Node q=left; q!=right; q=q.getNext()) {
  if((int)q.getItem()<=(int)pivot.getItem()){
    if(p == null){
      p = left;
    }else{
      p.getNext();
    }
    int temp = (int) p.getItem();
    p.setItem(q.getItem());
    q.setItem(temp);
  }
}
if(p == null){
  p = null;
}else{
  p.getNext();
}
int temp = (int)p.getItem();
p.setItem(pivot.getItem());
pivot.setItem(temp);
return p;

}

this is my sort part

public void QuickSort(Node left, Node right) {
if(right!=null && left!=right && left!=right.getNext()) {
  Node p = partition(left,right);
  QuickSort(left,p.getPrev());
  QuickSort(p.getNext(),right);
}

}

it doesnt work at all

0 Answers
Related