Why compare comparisons
The sorting algorithm has two operations: comparing data and moving data. In many cases, comparison will be more expensive than moving. Think of long lines in a link-based typing system: moving data will simply exchange pointers, but it may require iteration over a large common part of the lines before the first difference is found. Thus, in this sense, comparison may well be a focus operation.
Why is the exact number
: , ( ) , . , , , . , , .
, lg 2. - n , n β. , βlg n β , . , , , , βlg n β, , . n βlg n β .
m n m + n - 1, , , . , , .. m= n. n - 1 ( ). , n , 2 βlg n β - 1 n βlg n β - 2 βlg n β + 1 .
n 1 , βlg n β , . , . , βlg n β, , , n . , , . 2 βlg n β n: , . , n 1.
, Wikipedia:
n βlg n β - 2 βlg n β + 1
. . , , , , license.
, βlg n β = lg n + d 0 β€ d 1.
n (lg n + d) - 2 lg n + d + 1 =
n lg n + nd - n 2 d + 1 =
n lg n - n (2 d - d) + 1 β₯
n lg n - n + 1
, 2 d - d β€ 1 0 β€ d 1
, , - n lg n + n + O (lg n) . , n lg n - 0,9 n + 1 . 2 d - d (ln (ln (2)) + 1)/ln (2) β 0,914 d= -ln (ln (2))/ln (2) β 0,529.
, , , - , .
( )
; .
(n lg n - n + 1); (n lg n - n + 1) (n lg n + n + O (lg n))
, , . , , . , , , , .