|
|
|
|
|
by bumeye
5214 days ago
|
|
The author does an insertion sort in a linked list, of course that's going to be slow. For a sorted insert you need to do 2 things: find the right spot for insertion and the insert itself. An insertion sort does this n times. For a simple array/vector that's: search: O(n) insert: O(1) total takes (O(n) + O(1)) x O(n) = O(n^2) For a linked list: search: O(n) insert: O(n) total takes (O(n) + O(n)) x O(n) = O(n^2) There we go, the algorithm takes O(n^2) for both data structures. The theory already proves that a linked list has absolutely no advantage over an array when using this algorithm. On top of that, iterating over a linked list is slower than over an array for various reasons, even thought they are both O(n). So that's where the difference is coming from. The example he uses is clearly a wrong use case for a linked list, it's plain wrong to conclude that the whole data structure should never be used. |
|