You can use XOR positions for shift bits in an array;
var arr, len, len2;
arr = [0, 5, 7, 8, 9, 1, 2, 3, 6, 4];
len = arr.length;
for (var i = 0; i < len; i++) {
for (var j = 0; j < len - 1; j++) {
if (arr[i] <= arr[j]) {
arr[i] = arr[i] ^ arr[j];
arr[j] = arr[j] ^ arr[i];
arr[i] = arr[i] ^ arr[j];
}
}
}
while (--len) {
len2 = len;
while (len2--) {
if (arr[len] < arr[len2]) {
arr[len] = arr[len] ^ arr[len2];
arr[len2] = arr[len2] ^ arr[len];
arr[len] = arr[len] ^ arr[len2];
}
}
}
jsperf: http://jsperf.com/sort-tive/4
source
share