1
這是我在java中爲雙向鏈表執行插入排序。我檢查了很多值,它給了我正確的輸出。我的問題是:我執行的插入排序
- 我不知道如何計算算法的時間爲這個我的意思是爲O(n)
- 可以這樣進行優化?任何人都可以指向更優化的代碼嗎?
注:代碼使用前哨淋巴結爲指向啓動鏈表即定點node.next點開始鏈表和定點node.PREV點的節點到鏈表頭指向前哨淋巴結的最後一個節點。
public void sortInsertionAsce(){
DListNode marker,aheadOfCurrent;;
DListNode current = head.getNext();
aheadOfCurrent = current.getNext();
marker=current;
while(aheadOfCurrent.getNext()!=current){
if(marker.getItem()>aheadOfCurrent.getItem()){
swap(aheadOfCurrent,marker);
marker=aheadOfCurrent;
while(aheadOfCurrent.getPrev()!=current){
aheadOfCurrent=aheadOfCurrent.getPrev();
if(aheadOfCurrent.getPrev().getItem()>aheadOfCurrent.getItem()){
swap(aheadOfCurrent.getPrev(),aheadOfCurrent);
}
}
aheadOfCurrent=marker;
}
marker=aheadOfCurrent;
aheadOfCurrent=aheadOfCurrent.getNext();
}
}
我是新來的鏈接列表,並希望從某人誠實的意見。此代碼有效。只是想知道這是否可以優化。 – sreeprasad
這是[CodeReview](http://codereview.stackexchange.com/)的問題。 –
@LeeAllan你知道這個問題是四歲,我希望?我認爲你推薦Code Review有點遲... –