Моя реализация сортировки вставками

Это моя реализация сортировки вставками в java для двусвязного списка. Я проверил много значений, и это дает мне правильный вывод. Мой вопрос:

  1. Я не знаю, как рассчитать время алгоритма для этого, я имею в виду O (n)
  2. Можно ли это оптимизировать? Может ли кто-нибудь указать код, который более оптимизирован?

Примечание. В коде используется дозорный узел, который указывает на начало связанного списка, т. е. дозорный узел. Следующий указывает на начальный узел связанного списка и дозорный узел. 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();
            }
         } 

person sreeprasad    schedule 17.09.2011    source источник
comment
Я новичок в связанном списке и хотел услышать честное мнение от кого-то. Этот код работает. Просто хотел узнать, можно ли это оптимизировать.   -  person sreeprasad    schedule 17.09.2011
comment
Это вопрос для CodeReview.   -  person Lee Fogg    schedule 15.05.2015
comment
@LeeAllan Надеюсь, ты знаешь, что этому вопросу четыре года? Я думаю, вы немного опоздали с рекомендацией Code Review...   -  person Simon Forsberg    schedule 15.05.2015
comment
@LeeAllan этот вопрос нельзя перенести, он слишком старый   -  person Malachi    schedule 15.05.2015
comment
@SimonAndréForsberg Я думаю, ленте все равно, когда они датируются. Хорошая работа там.   -  person Lee Fogg    schedule 15.05.2015
comment
@LeeAllan Я предполагаю, что вы находитесь на активной странице, которая посвящена тому, когда последний раз вопрос был изменен. Этот вопрос был отредактирован 13 минут назад. Вот ваше объяснение. Тайна раскрыта, дело закрыто ;)   -  person Simon Forsberg    schedule 15.05.2015


Ответы (1)


это O (N ^ 2), потому что 1 вложенный цикл. и все 2 цикла повторяются по всему списку

person wedens    schedule 18.09.2011