程序员面试题精选100题(41)-把数组排成最小的数(算法)

面试题 时间:2019-09-22 手机网站
b,则ab<ba。当ab用十进制表示的时候分别为l位和m位时,ab=a×10m+bba=b×10l+a。所以a×10m+b<b×10l+a。于是有a×10m-a< b×10l –b,即a(10m -1)<b(10l -1)。所以a/(10l -1)<b/(10m -1)

如果b小于c,则bc<cb。当c表示成十进制时为m位。和前面证明过程一样,可以得到b/(10m -1)<c/(10n -1)

所以a/(10l -1)< c/(10n -1)。于是a(10n -1)<c(10l -1),所以a×10n +c<c×10l +a,即ac<ca

所以a小于c

在证明了我们排序规则的有效性之后,我们接着证明算法的正确性。我们用反证法来证明。