TypeScript
by tanya_22
TypeScript
function quickSearch(arr) {
// debugger;
if (arr.length < 2) {
return arr;
}
const supportingEl = arr[0];
const less = arr.filter(item => item < supportingEl);
const more = arr.filter(item => item > supportingEl);
return [...quickSearch(less), supportingEl, ...quickSearch(more)];
}
function quickSearch2(arr) {
if (arr.length < 2) {
return arr;
}
const supportingEl = arr[0];
const less = [];
const more = [];
for (let i = 1; i < arr.length; i++) {
if (arr[i] <= supportingEl) {
less.push(arr[i]);
} else {
more.push(arr[i]);
}
}
return [...quickSearch2(less), supportingEl, ...quickSearch2(more)];
}
function quickSearch3(arr) {
if (arr.length < 2) {
return arr;
}
let pivot = arr[Math.floor(arr.length / 2)];
const less = [];
const greater= [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] === pivot) continue;
if (pivot >= arr[i]) {
less.push(arr[i]);
} else {
greater.push(arr[i]);
}
}
return [...quickSearch3(less), pivot, ...quickSearch3(greater)];
}
/* console.time('quickSearch');
console.log(quickSearch([3,14,1,7,9,8,11,6,4,2]));
console.timeEnd('quickSearch');*/
/* console.time('quickSearch2');
console.log(quickSearch2([3,14,1,7,9,8,11,6,4,2, 11, 11]));
console.timeEnd('quickSearch2'); */
console.time('quickSearch3');
console.log(quickSearch3([3,14,1,7,9,8,11,6,4,11, 11, 2]));
console.timeEnd('quickSearch3');