2021-06-15 记录一次由位运算实现swap产生的bug
今天使用别人的案例来理解三路快速排序,看了许多的案例,也尝试copy过来运行,但始终会出现“0”这种原始数组中不存在的数,我仔细看过,代码本身并没有什么问题,因为大家写的都是几乎一样的,唯一的问题最后发现竟然出现在swap上!
换成用临时变量实现的swap之后,就不存在这个问题了。
private static void swap(int[] a, int i, int j) {
a[i] = a[i] ^ a[j];
a[j] = a[i] ^ a[j];
原创
2021-06-15 13:36:08 ·
247 阅读 ·
0 评论