异或运算:不进位相加
所谓常数操作就是跟数据量无关,是一个固定时间的操作。(加减乘除位运算等等)
冒泡排序的时间复杂度为
O
(
n
2
)
O(n^2)
O(n2)
评价一个算法流程的好坏,先看时间复杂度的指标,然后再分析不同数据样本下的实际运行时间,也就是“常数项时间”。
两个数交换:
a = a 异或 b
b = a 异或 b
a = a 异或 b
public static void swap(int[] arr,int i, int j){ arr[i] = arr[i]^arr[j]; arr[j] = arr[i]^arr[j]; arr[i] = arr[i]^arr[j]; } // i 不能等于 j,不能是同一个内存区域