Skip to content

Instantly share code, notes, and snippets.

@HenriqueSilverio
Last active May 19, 2022 17: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 HenriqueSilverio/6fb38214f0ad338aaccca7495ac537c2 to your computer and use it in GitHub Desktop.
Save HenriqueSilverio/6fb38214f0ad338aaccca7495ac537c2 to your computer and use it in GitHub Desktop.
const sum = (numbers = []) => {
if (numbers.length === 0) {
return 0
}
return numbers[0] + sum(numbers.slice(1))
}
const max = (numbers = []) => {
if (numbers.length === 0) {
return 0
}
if (numbers.length === 2) {
return numbers[0] > numbers[1]
? numbers[0]
: numbers[1]
}
const subMax = max(numbers.slice(1))
return numbers[0] > subMax
? numbers[0]
: subMax
}
const quickSort = (numbers = []) => {
if (numbers.length < 2) {
return numbers
}
const pivot = numbers[0]
const rest = numbers.slice(1)
const left = rest.filter((value) => value <= pivot)
const right = rest.filter((value) => value > pivot)
return [ ...quickSort(left), pivot, ...quickSort(right) ]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment