// your code goes here
function bubbleSort(arr, n) {
for(let i=0;i<n-1;i++) {
for(let j=0;j<=n-2-i;j++) {
// jth and (j+1)th elements
if(arr[j] > arr[j+1]) {
let tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
return arr;
}
// console.log(bubbleSort([4, 1, 7, 2, 3], 5))
// TC: O(n^2)
// SC: O(1)
function selectionSort(arr, n) {
for(let i=0;i<n-1;i++) {
let min_elem_idx = i;
for(let j=i+1;j<n;j++){
if(arr[j] < arr[min_elem_idx]) {
min_elem_idx = j;
}
}
// swap arr[i] with arr[min_elem_idx]
let tmp = arr[i];
arr[i] = arr[min_elem_idx];
arr[min_elem_idx] = tmp;
}
return arr;
}
console.log(selectionSort([4, 1, 7, 2, 3], 5))
Ly8geW91ciBjb2RlIGdvZXMgaGVyZQpmdW5jdGlvbiBidWJibGVTb3J0KGFyciwgbikgewoJCglmb3IobGV0IGk9MDtpPG4tMTtpKyspIHsKCQlmb3IobGV0IGo9MDtqPD1uLTItaTtqKyspIHsKCQkJLy8ganRoIGFuZCAoaisxKXRoIGVsZW1lbnRzCgkJCWlmKGFycltqXSA+IGFycltqKzFdKSB7CgkJCQlsZXQgdG1wID0gYXJyW2pdOwoJCQkJYXJyW2pdID0gYXJyW2orMV07CgkJCQlhcnJbaisxXSA9IHRtcDsKCQkJfQoJCX0KCX0KCXJldHVybiBhcnI7Cn0KCi8vIGNvbnNvbGUubG9nKGJ1YmJsZVNvcnQoWzQsIDEsIDcsIDIsIDNdLCA1KSkKCi8vIFRDOiBPKG5eMikKLy8gU0M6IE8oMSkKCmZ1bmN0aW9uIHNlbGVjdGlvblNvcnQoYXJyLCBuKSB7Cglmb3IobGV0IGk9MDtpPG4tMTtpKyspIHsKCQlsZXQgbWluX2VsZW1faWR4ID0gaTsKCQlmb3IobGV0IGo9aSsxO2o8bjtqKyspewoJCQlpZihhcnJbal0gPCBhcnJbbWluX2VsZW1faWR4XSkgewoJCQkJbWluX2VsZW1faWR4ID0gajsKCQkJfQoJCX0KCQkvLyBzd2FwIGFycltpXSB3aXRoIGFyclttaW5fZWxlbV9pZHhdCgkJbGV0IHRtcCA9IGFycltpXTsKCQlhcnJbaV0gPSBhcnJbbWluX2VsZW1faWR4XTsKCQlhcnJbbWluX2VsZW1faWR4XSA9IHRtcDsKCX0KCXJldHVybiBhcnI7Cn0KCmNvbnNvbGUubG9nKHNlbGVjdGlvblNvcnQoWzQsIDEsIDcsIDIsIDNdLCA1KSkKCgoKCgoKCgoKCgoKCgo=