Skip to content

Instantly share code, notes, and snippets.

@hxlniada
Created July 2, 2014 14:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hxlniada/59cbcc37a370f30afb2b to your computer and use it in GitHub Desktop.
Save hxlniada/59cbcc37a370f30afb2b to your computer and use it in GitHub Desktop.
function iterSort(arr) {
var result = [], len = arr.length;
arr.sort();
result.push(arr.join(''));
while (true) {
var temp;
for (var i = len - 1; i >= 1; i--) {
if (arr[i] > arr[i - 1]) {
console.log(i, arr[i], arr[i - 1], arr.toString());
temp = i - 1;
break;
}
}
if (i === 0) {
break;
}
for (i = len - 1; i > temp; i--) {
if (arr[i] > arr[temp]) {
swap(arr, i, temp);
reverseI(arr, temp + 1);
result.push(arr.join(''));
}
}
}
return result;
}
function swap(arr, i, j) {
arr[i] = [arr[j], arr[j] = arr[i]][0];
}
function reverseI(arr, i) {
var temp = arr.slice(i);
[].splice.apply(arr, [i, temp.length].concat(temp.reverse()));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment