算法

容易出现的坑

当出现 fast.next.next 这种形式的操作,一定要考虑fast.next 会不会为null

排序

选择排序

思想:
先确定一个最小值的位置,一般为数组开始位置,然后后一个位置跟这个最小值比较,如果后一个值更小,就认为后一个值为最小值的位置;否则,最小值位置保持不变。一轮循环就能找到最小值的位置,然后交换最小值跟当前数组的第一个数位置。

空间复杂度:只占用了几个变量,额外空间复杂度为O(1)

冒泡排序

思想:
N个数的数组,在0~N-1 的范围上,从数组开始比较,谁大谁往右移,即交换它们的位置。一直比较,直到最大的数被交换到数组的最右边。在0~N-2的范围上继续此过程,直到数组所有数都经过此过程。

异或运算

0 ^ N = N
N ^ N = 0

异或运算满足交换律和结合律

a ^ b = b ^ a
(a ^ b) ^ c = a ^ (b ^ c)

posted @ 2021-12-30 04:25  Lylee  阅读(26)  评论(0编辑  收藏  举报