BVB Source Codes

Algorithm-Implementations Show insertion_sort.js Source code

Return Download Algorithm-Implementations: download insertion_sort.js Source code - Download Algorithm-Implementations Source code - Type:.js
  1. /*
  2. Insertion Sort
  3. --------------
  4. Advantages:
  5.     - simple implementation
  6.     - efficient for small data sets
  7.     - efficient at sorting partially sorted datasets
  8.     - can sort list as it is recieved
  9.     - in-place
  10.     - stable
  11. Disadvantages:
  12.     - quadratic time complexity
  13. Time Complexity:
  14.     - worst:   O(n^2)
  15.     - average: O(n^2)
  16.     - best:    O(n)
  17. Space Complexity:
  18.     - O(n)
  19. */
  20.  
  21. function insertion_sort(l) {
  22.     var copy = l;
  23.     var size = copy.length;
  24.     for (var i = 1; i < size; i++) {
  25.         for (var j = i; j > 0; j--) {
  26.             // iterate in reverse until element copy[j] >= copy[j-1]
  27.             if (copy[j] < copy[j-1]) {
  28.                 // if elements are out of order,
  29.                 // swap them using a temporary variable
  30.                 var temp = copy[j-1];
  31.                 copy[j-1] = copy[j];
  32.                 copy[j] = temp;
  33.             } else {
  34.                 break
  35.             }
  36.         }
  37.     }
  38.     return copy;
  39. }
  40.  
  41. // Testing
  42. var l = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1];
  43. console.log("Unsorted list: ", l);
  44. l = insertion_sort(l);
  45. console.log("Sorted list: ", l);
downloadinsertion_sort.js Source code - Download Algorithm-Implementations Source code
Related Source Codes/Software:
raty - 2017-04-22
RDVTabBarController - Highly customizable tabBar and tabBarController fo... 2017-04-22
material-icon-lib - Library containing over 1500 material vector icons... 2017-04-21
httpdiff - Perform the same request against two HTTP servers ... 2017-04-21
jquerytools - The missing UI library for the Web ... 2017-04-21
mcrouter - Mcrouter is a memcached protocol router for scalin... 2017-04-22
dynomite - A generic dynamo implementation for different k-v ... 2017-04-22
kityminder - Baidu brain figure 2017-04-22
llvm - Mirror of official llvm git repository located at ... 2017-04-22
RBBAnimation - Block-based animations made easy, comes with easin... 2017-04-22
ied - 2017-04-29
Nimble - A Matcher Framework for Swift and Objective-C 2017-04-29
MHVideoPhotoGallery - A Photo and Video Gallery 2017-04-29
shoulda-matchers - Collection of testing matchers extracted from Shou... 2017-04-29
Android-SlideExpandableListView - A better ExpandableListView, with animated expanda... 2017-04-29
AppSales-Mobile - App Sales allows iPhone and Mac App Store develope... 2017-04-29
react-templates - Light weight templates for react ... 2017-04-28
afterglow-theme - A minimal dark Theme for Sublime Text 2 and 3 2017-04-28
jwt-go - Golang implementation of JSON Web Tokens (JWT) 2017-04-28
DeerResume - Tool MarkDown online resume, online preview, edit,... 2017-04-28

 Back to top