首页 > 代码库 > [DS Basics] Sorting

[DS Basics] Sorting

Time complexity:

Binary search O(log2 n):

i=0.   n elements:         -------------------

i=1.   n/2 elements:                   ----------

i=2.   n/4 elements:                          -----

...

i=i.    n/2^i elements:                        -

进行n/2^i=1, i=log2 n 次,来达到只剩一个element.

1,Selection Sort

Steps:

from 0~n-1, select the minimum element[comparing n-1 times], swap it with the A[0].

from 1~n-1, select the minimum element[comparing n-2 times], swap it with the A[1].

...

So total comparison times: n-1+n-2+...+2+1 = n(n-1)/2=O(n^2).

2, Insertion Sort

Steps:

i, compare with j=0~i-1=0, if bigger than A[j], nothing changes; if smaller than A[j], A[j+1] = A[j], move A[i] to position j.

So total comparison times:  1+2+...+n-1=n(n-1)/2=O(n^2).