fork download
  1. // your code goes here
  2.  
  3. function bubbleSort(arr) {
  4. let n = arr.length;
  5. for(let i=0;i<n-1;i++){
  6. for(let j=0;j<n-i-1;j++){
  7. if(arr[j] > arr[j+1]) {
  8. // let tmp = arr[j];
  9. // arr[j] = arr[j+1];
  10. // arr[j+1] = tmp;
  11. [arr[j], arr[j+1]] = [arr[j+1], arr[j]];
  12. }
  13. }
  14. }
  15. return arr;
  16. }
  17.  
  18. function selectionSort(arr) {
  19. let n = arr.length;
  20. for(let i=0;i<n-1;i++){
  21. let min_idx = i;
  22. for(let j=i+1;j<n;j++){
  23. if(arr[j] < arr[min_idx]) {
  24. min_idx = j;
  25. }
  26. }
  27. // min_idx is the index of the least element from i to n-1
  28. // swap this element with ith element
  29. let tmp = arr[i];
  30. arr[i] = arr[min_idx];
  31. arr[min_idx] = tmp;
  32. // [arr[i], arr[min_idx]] = [arr[min_idx], arr[i]];
  33. }
  34. return arr;
  35. }
  36.  
  37. console.log(selectionSort([13, 2, 5, 1, 4]))
  38.  
  39.  
  40. // 1+2+3+4+ ... + n = n * (n+1)/2 = (n^2+n) / 2
  41.  
  42. // TC: O(n^2), SC: O(1)
  43. // i=0, j = 0, 1, 2, .. n-2
  44. // (0, 1), (1, 2), (2, 3) .... (n-2, n-1)
  45.  
  46. // i=1, j = 0, 1, 2, ... n-3
  47. // (0, 1), (1, 2), (2, 3) .... (n-3, n-2)
Success #stdin #stdout 0.04s 16796KB
stdin
Standard input is empty
stdout
1,2,4,5,13