// your code goes here
// function bubbleSort(arr, n) {
// for(let i=0;i<n-1;i++) {
// for(let j=0;j<n-1-i;j++) {
// if(arr[j] > arr[j+1]) {
// let tmp = arr[j];
// arr[j] = arr[j+1];
// arr[j+1] = tmp;
// // [arr[j], arr[j+1]] = [arr[j+1], arr[j]];
// }
// }
// }
// return arr;
// }
// console.log(bubbleSort([4, 1, 5, 2, 3], 5))
// TC: O(n^2) SC: O(1)
// i=0, j, j+1, j<=n-2
// i=1, j<=n-3
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[min_elem_idx] with arr[i]
let tmp = arr[i];
arr[i] = arr[min_elem_idx];
arr[min_elem_idx] = tmp;
}
return arr;
}
console.log(selectionSort([4, 1, 5, 2, 3], 5))
Ly8geW91ciBjb2RlIGdvZXMgaGVyZQovLyBmdW5jdGlvbiBidWJibGVTb3J0KGFyciwgbikgewoJCi8vIAlmb3IobGV0IGk9MDtpPG4tMTtpKyspIHsKLy8gCQlmb3IobGV0IGo9MDtqPG4tMS1pO2orKykgewovLyAJCQlpZihhcnJbal0gPiBhcnJbaisxXSkgewovLyAJCQkJbGV0IHRtcCA9IGFycltqXTsKLy8gCQkJCWFycltqXSA9IGFycltqKzFdOwovLyAJCQkJYXJyW2orMV0gPSB0bXA7CgkJCQkKLy8gCQkJCS8vIFthcnJbal0sIGFycltqKzFdXSA9IFthcnJbaisxXSwgYXJyW2pdXTsKLy8gCQkJfQovLyAJCX0KLy8gCX0KLy8gCXJldHVybiBhcnI7Ci8vIH0KCi8vIGNvbnNvbGUubG9nKGJ1YmJsZVNvcnQoWzQsIDEsIDUsIDIsIDNdLCA1KSkKCi8vIFRDOiBPKG5eMikgU0M6IE8oMSkKLy8gaT0wLCBqLCBqKzEsIGo8PW4tMgovLyBpPTEsIGo8PW4tMwoKCmZ1bmN0aW9uIHNlbGVjdGlvblNvcnQoYXJyLCBuKSB7Cglmb3IobGV0IGk9MDtpPG4tMTtpKyspIHsKCQlsZXQgbWluX2VsZW1faWR4ID0gaTsKCQlmb3IobGV0IGo9aSsxO2o8bjtqKyspIHsKCQkJaWYoYXJyW2pdIDwgYXJyW21pbl9lbGVtX2lkeF0pIHsKCQkJCW1pbl9lbGVtX2lkeCA9IGo7CgkJCX0KCQl9CgkJLy8gc3dhcCBhcnJbbWluX2VsZW1faWR4XSB3aXRoIGFycltpXQoJCWxldCB0bXAgPSBhcnJbaV07CgkJYXJyW2ldID0gYXJyW21pbl9lbGVtX2lkeF07CgkJYXJyW21pbl9lbGVtX2lkeF0gPSB0bXA7CgkJCgl9CglyZXR1cm4gYXJyOwp9CgogY29uc29sZS5sb2coc2VsZWN0aW9uU29ydChbNCwgMSwgNSwgMiwgM10sIDUpKQ==