鸡尾酒排序
function cockTailSort(arr: number[]): void {
let sorted: boolean;
const len = arr.length;
for (let i = 0, time = len >> 1; i < time; i++) {
sorted = true;
for (let j = i, end = len - i - 1; j < end; j++) {
if (arr[j] > arr[j + 1]) {
swap(arr, j, j + 1);
sorted = false;
}
}
console.log(i, "l->r",arr);
if (sorted) {
break;
}
for (let j = len - i - 2 ; j > i; j--) {
if (arr[j - 1] > arr[j]) {
swap(arr, j - 1, j);
sorted = false;
}
}
if (sorted) {
break;
}
console.log(i, "r->l",arr);
}
}
function swap(arr: number[], pre: number, next: number): void {
let value = arr[pre];
arr[pre] = arr[next];
arr[next] = value;
}
cockTailSort([3, 2, 5, 8, 3, 2])