シェーカーソート
function shakerSort(array) { var l = 0, r = array.length - 1, last, i, temp; while(true) { last = -1; for(i=l; i<r; ++i) { if(array[i] > array[i+1]) { temp = array[i]; array[i] = array[i+1]; array[i+1] = temp; last = i; } } if(last == -1) return; r = last; last = -1; for(i=r; l<i; --i) { if(array[i-1] > array[i]) { temp = array[i-1]; array[i-1] = array[i]; array[i] = temp; last = i; } } if(last == -1) return; l = last; } }