數字也可以作為特別的字符串...這種情況下...如果我們用字典序進行比較...就有可能會出現下面這種情況...
100<1000..(加引號的目的是為了區別數字..與數字串..)
事實上呢.在計算機裏...我們會這麽看..和之前壹樣...我們會首先比較第壹個字符...
這裏1='1'..(已經可以看到區別了..在數中..數字因為位置的不同會有不同的意義..而這裏.這種分別變的不壹樣了...)
..壹步比較...還沒有辦法分辨出它們的大小...只好再比較之後的數...
這種情況回直到最後壹次嘗試...第壹個字符串已經空掉之前...
如果硬要比較的話...
空格的ascii碼值是32.(Ascii碼還是用兩位十六進制表示比較合適)
‘0’的ASCII碼值是48 所以‘100’<'1000'
例子:依次比字母, 如boat < boot <
cap < card < cat < to < too< two < up
字典序如下:
設P是1~n的壹個全排列:p=p1p2......pn=p1p2......pj-1pjpj+1......pk-1pkpk+1......pn
1)從排列的右端開始,找出第壹個比右邊數字小的數字的序號j(j從左端開始計算),即 j=max{i|pi<pi+1}
2)在pj的右邊的數字中,找出所有比pj大的數中最小的數字pk,即 k=max{i|pi>pj}(右邊的數從右至左是遞增的,因此k是所有大於pj的數字中序號最大者)
3)對換pj,pk
4)再將pj+1......pk-1pkpk+1......pn倒轉得到排列p'=p1p2.....pj-1pjpn.....pk+1pkpk-1.....pj+1,這就是排列p的下壹個排列。