-
Notifications
You must be signed in to change notification settings - Fork 0
code_corner_case
Xiaolin Zhang edited this page Nov 2, 2019
·
1 revision
- 单个数据的长度是 size, 最后一个元素是size - 1
- 将数组的长度总是记做n,m. 下标总是从0开始到n-1,m-1结束
先想一个问题, 为什么int的除法本质是什么?
右移操作. 要知道右移动的时候丢掉了最后一位的信息, 对于xxx1和xxx0来说右移的结果都是一样的.
于是我们知道,
- 00 -> 00
- 01 -> 00
- 10 -> 01
- 11 -> 01
所以每一个偶数和比他大1的数, 除以2得到的值都是偶数除以2的值, 看例子
3的下一位是2, 2/2=1; 11的下一位是10, 10/2=5;
8的上一位是9, (8,9)/2都是4 ...
编程中,因为我们总是用0当做下标, 这个时候一个
-
偶数x除以2是没有中间元素的,但是因为元素是从0开始, 那么
x/2=mid
, 这个mid就正好是中间的一个值然后将左右分成了相等大的两部分a b M d e f
-
如果x是一个奇数, 我们说过一个奇数x和x-1除以2是一样的.所以相当于x-1平分了左右之后,右边又加了一个数
a b c M d e f [g]
因为我们不说倒数第0个元素, 而是从1开始的. 所以倒数第一个元素要这么表示
[size - 1] = [size] - 1
倒数第k个元素的下标是 size - k