Tag: sync

双链表上的QuickSort

我想在同步双链表上实现QuickSort算法。 我给左边框和右边框的function“分区”,然后它开始搜索左侧的较低值并将较大的值放在右侧。 这是有效的,因为我的枢轴元素总是最右边的,并且在这个步骤之后它位于中间。 我总是得到一个无尽的循环,我不知道为什么? 也许错误的中止条件? 她的代码: private void quickSortRec(DoublyLinkedList in, ListElement l, ListElement r) { ListElement pivot = partition(in, l, r); if(pivot!=null && l!=r){ quickSortRec(in, in.first, pivot.prev); quickSortRec(in, pivot.next, in.first.prev); } } public ListElement partition(DoublyLinkedList in, ListElement l, ListElement r){ ListElement pivot = r; ListElement walker = l; if(l!=r){ while(walker != pivot){ if(walker.getKey() >= pivot.getKey()){ […]