// Time Complexity O(n^2)
// Space Complexity O(1)
function sort(arr: number[]) {
let items = arr.slice()
for (let i = 0; i < items.length; i++) {
for (let j = i + 1; j < items.length; j++) {
if (items[j] < items[i]) {
let tmp = items[j]
items[j] = items[i]
items[i] = tmp
}
}
}
return items
}
let items = [4, 1, 5, 3, 2]
let sortItems = sort(items)
// sortItems is [1, 2, 3, 4, 5]
console.log("sortItems is",
sortItems)
// *** simplified speed test ***
let i = 0
items = Array
.apply(null, Array(200))
.map(() => ++i)
let tmp = items[5]
items[5] = items[6]
items[6] = tmp
let count = 10000
let start = new Date()
for (i = 0; i < count; i++)
sort(items)
let now = new Date()
let milliseconds = now.getTime() - start.getTime()
console.log("milliseconds is", milliseconds)
// about 162 milliseconds