Есть список, заполненный целочисленными значениями, нужно его отсортировать алгоритмом bubble sort. При сдаче своего варианта мне отказали с комментарием: "Неправильно реализована сортировка."
Структура:
Код
struct listnode{ int a; struct listnode *next; };
Сортировка:
Код
void list_sort( struct listnode *list){ int temp, f = 0; struct listnode *first; first = list;
while(list->next != NULL){ first = list->next; do{ if(first->a < list->a){ temp = first->a; first->a = list->a; list->a = temp; } first = first->next; } while (first != NULL); list = list->next; } }
Что я упустил, почему алгоритм работает столь долго?
Folleah, нит. У меня вообще сортировка карманная, но кармашки сортируются пузырьком. В итоге алгоритм работает не за линейное время. Индексы вроде не робят с моей реализацией, а иначе не учили. Я и с обычного пузырька смог бы что-нибудь слепить, но как-то не выходит сделать это со списком.