Advertisement
stanevplamen

Sorting algorithms

Sep 21st, 2022 (edited)
739
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 5.45 KB | Software | 0 0
  1. // https://www.google.com/search?q=sorting+algorithms&sxsrf=ALiCzsbgLckE8GgnpMt0DT6Fq05YjFdrWw%3A1663748288817&ei=wMgqY7O-MYu8kwXqrLigBA&ved=0ahUKEwiznoCuuaX6AhUL3qQKHWoWDkQQ4dUDCA4&uact=5&oq=sorting+algorithms&gs_lcp=Cgdnd3Mtd2l6EAMyBAgAEEMyBQgAEIAEMgUIABCABDIFCAAQgAQyCggAEIAEEIcCEBQyBQgAEIAEMgUIABCABDIFCAAQgAQyBQgAEIAEMgUIABCABDoECCMQJzoFCAAQkQI6CggAELEDEIMBEEM6DgguELEDEIMBEMcBENEDOgsIABCABBCxAxCDAToHCAAQyQMQQzoLCC4QgAQQxwEQrwFKBAhBGABKBAhGGABQAFiqImDQI2gAcAF4AIAB8wGIAeIPkgEGMTAuNy4xmAEAoAEBwAEB&sclient=gws-wiz
  2.  
  3. // JavaScript program for Merge Sort
  4. // https://www.geeksforgeeks.org/merge-sort/
  5. // Merges two subarrays of arr[].
  6. // First subarray is arr[l..m]
  7. // Second subarray is arr[m+1..r]
  8. var arr = [4, 8, 7, 2, 11, 1, 3, 34, 5, 666, 3, 1, 55];
  9.  
  10. var merge = function(l1, r1) {
  11.     var merged = [];
  12.  
  13.     while(l1.length > 0  && r1.length > 0 ) {
  14.         if(l1[0] < r1[0]) {
  15.             merged.push(l1.shift());
  16.         }
  17.         else {
  18.             merged.push(r1.shift());
  19.         }
  20.     }
  21.  
  22.     return merged.concat(l1,r1);
  23. }
  24.  
  25. var mergeSort = function(arr) {
  26.     if(arr.length < 2) {
  27.         return arr;
  28.     }
  29.     var middle = parseInt(arr.length / 2);
  30.     var l1 = arr.slice(0,middle);
  31.     var r1 = arr.slice(middle);
  32.     l1 = mergeSort(l1);
  33.     r1 = mergeSort(r1);
  34.     return merge (l1, r1);
  35. }
  36. debugger;
  37. var sortedM = mergeSort(arr);
  38. console.log(sortedM);
  39.  
  40. //////////////////////////////////////////
  41. // Quick sort
  42. // https://stackabuse.com/quicksort-in-javascript/
  43.  
  44. function quicksort(array) {
  45.     if (array.length <= 1) {
  46.       return array;
  47.     }
  48.  
  49.     var pivot = array[0];
  50.    
  51.     var left = [];
  52.     var right = [];
  53.  
  54.     for (var i = 1; i < array.length; i++) {
  55.       array[i] < pivot ? left.push(array[i]) : right.push(array[i]);
  56.     }
  57.  
  58.     var l1 = quickSort(left);
  59.     var r1 = quickSort(right)
  60.     return l1.concat(pivot, r1);
  61.  
  62. };
  63. debugger;
  64. var unsorted = [23, 45, 16, 37, 3, 99, 22];
  65. var sorted = quicksort(unsorted);
  66.  
  67. console.log('Sorted array', sorted);
  68.  
  69. //////////////////////////////////////////
  70. // Bubble sort Implementation using Javascript
  71.  
  72.  
  73. // Creating the bblSort function
  74. function bblSort(arr){
  75.    
  76.     for(var i = 0; i < arr.length; i++){
  77.        
  78.       // Last i elements are already in place
  79.       for(var j = 0; j < ( arr.length - i -1 ); j++){
  80.          
  81.         // Checking if the item at present iteration
  82.         // is greater than the next iteration
  83.         if(arr[j] > arr[j+1]){
  84.            
  85.           // If the condition is true then swap them
  86.           var temp = arr[j]
  87.           arr[j] = arr[j + 1]
  88.           arr[j+1] = temp
  89.         }
  90.       }
  91.     }
  92.     // Print the sorted array
  93.     console.log(arr);
  94. }
  95.  
  96.  
  97. // This is our unsorted array
  98. var arr = [234, 43, 55, 63,  5, 6, 235, 547];
  99.    
  100.    
  101. // Now pass this array to the bblSort() function
  102. bblSort(arr);
  103.  
  104. // Insertion sort
  105. // https://www.geeksforgeeks.org/insertion-sort/
  106.  
  107. // Javascript program for insertion sort  
  108.    
  109. // Function to sort an array using insertion sort
  110. function insertionSort(arr, n)  
  111. {  
  112.     let i, key, j;  
  113.     for (i = 1; i < n; i++)
  114.     {  
  115.         key = arr[i];  
  116.         j = i - 1;  
  117.    
  118.         /* Move elements of arr[0..i-1], that are  
  119.         greater than key, to one position ahead  
  120.         of their current position */
  121.         while (j >= 0 && arr[j] > key)
  122.         {  
  123.             arr[j + 1] = arr[j];  
  124.             j = j - 1;  
  125.         }  
  126.         arr[j + 1] = key;  
  127.     }  
  128. }  
  129.    
  130. // A utility function to print an array of size n  
  131. function printArray(arr, n)  
  132. {  
  133.     let i;  
  134.     for (i = 0; i < n; i++)  
  135.         console.log(arr[i] + " ");  
  136. }  
  137.    
  138. // Driver code
  139. let arr = [12, 11, 13, 5, 6 ];  
  140. let n = arr.length;  
  141.  
  142. insertionSort(arr, n);  
  143. printArray(arr, n);  
  144.      
  145. // This code is contributed by Mayank Tyagi
  146.  
  147. // JavaScript program for implementation
  148. // of Heap Sort
  149. // https://www.geeksforgeeks.org/heap-sort/?ref=lbp
  150.  
  151. function sort( arr)
  152. {
  153.     var N = arr.length;
  154.  
  155.     // Build heap (rearrange array)
  156.     for (var i = Math.floor(N / 2) - 1; i >= 0; i--)
  157.         heapify(arr, N, i);
  158.  
  159.     // One by one extract an element from heap
  160.     for (var i = N - 1; i > 0; i--) {
  161.         // Move current root to end
  162.         var temp = arr[0];
  163.         arr[0] = arr[i];
  164.         arr[i] = temp;
  165.  
  166.         // call max heapify on the reduced heap
  167.         heapify(arr, i, 0);
  168.     }
  169. }
  170.  
  171. // To heapify a subtree rooted with node i which is
  172. // an index in arr[]. n is size of heap
  173. function heapify(arr, N, i)
  174. {
  175.     var largest = i; // Initialize largest as root
  176.     var l = 2 * i + 1; // left = 2*i + 1
  177.     var r = 2 * i + 2; // right = 2*i + 2
  178.  
  179.     // If left child is larger than root
  180.     if (l < N && arr[l] > arr[largest])
  181.         largest = l;
  182.  
  183.     // If right child is larger than largest so far
  184.     if (r < N && arr[r] > arr[largest])
  185.         largest = r;
  186.  
  187.     // If largest is not root
  188.     if (largest != i) {
  189.         var swap = arr[i];
  190.         arr[i] = arr[largest];
  191.         arr[largest] = swap;
  192.  
  193.         // Recursively heapify the affected sub-tree
  194.         heapify(arr, N, largest);
  195.     }
  196. }
  197.  
  198. /* A utility function to print array of size n */
  199. function printArray(arr)
  200. {
  201.     var N = arr.length;
  202.     for (var i = 0; i < N; ++i)
  203.         document.write(arr[i] + " ");
  204.      
  205. }
  206.  
  207.  
  208. var arr = [12, 11, 13, 5, 6, 7];
  209. var N = arr.length;
  210.  
  211. sort(arr);
  212.  
  213. document.write( "Sorted array is");
  214. printArray(arr, N);
  215.  
  216.  
  217. // This code is contributed by SoumikMondal
  218.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement