sort-algorithms

Benchmark created by Ido Sela on


Description

Comparing native, bubble, insertion, selection, merge, and quick sort algorithms on a random array.

Preparation HTML

<script src="https://raw.github.com/idosela/algorithms-in-javascript/master/common.js">
</script>
<script src="https://raw.github.com/idosela/algorithms-in-javascript/master/bubble-sort.js">
</script>
<script src="https://raw.github.com/idosela/algorithms-in-javascript/master/insertion-sort.js">
</script>
<script src="https://raw.github.com/idosela/algorithms-in-javascript/master/merge-sort.js">
</script>
<script src="https://raw.github.com/idosela/algorithms-in-javascript/master/quick-sort.js">
</script>
<script src="https://raw.github.com/idosela/algorithms-in-javascript/master/selection-sort.js">
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
Native
var unsortedTestArray = [3195, 4189, 2547, 8543, 1533, 5456, 4980, 1849, 8041, 6036, 7067, 8579, 6590, 6739, 8293, 853, 5732, 8730, 7492, 2652, 8207, 9959, 2027, 5756, 1927, 3286, 9304, 3001, 2565, 5737, 826, 1927, 7924, 4521, 8105, 8195, 9879, 7951, 2774, 1362, 2970, 9007, 5191, 4109, 5494, 8192, 7136, 5971, 3631, 4991, 6735, 9593, 9660, 2064, 4619, 6553, 8229, 437, 5385, 5476, 7482, 6320, 6788, 6887, 9482, 9740, 7696, 4113, 9902, 1229, 8704, 9150, 7396, 1611, 4369, 361, 1830, 5033, 1088, 4501, 7430, 4119, 4767, 1844, 1484, 517, 6017, 5574, 2003, 8380, 6837, 494, 3422, 1608, 9448, 1764, 2824, 9932, 2566, 4204];

unsortedTestArray.sort(function compareNumbers(a, b) {
  return a - b;
});
ready
BubbleSort
var unsortedTestArray = [3195, 4189, 2547, 8543, 1533, 5456, 4980, 1849, 8041, 6036, 7067, 8579, 6590, 6739, 8293, 853, 5732, 8730, 7492, 2652, 8207, 9959, 2027, 5756, 1927, 3286, 9304, 3001, 2565, 5737, 826, 1927, 7924, 4521, 8105, 8195, 9879, 7951, 2774, 1362, 2970, 9007, 5191, 4109, 5494, 8192, 7136, 5971, 3631, 4991, 6735, 9593, 9660, 2064, 4619, 6553, 8229, 437, 5385, 5476, 7482, 6320, 6788, 6887, 9482, 9740, 7696, 4113, 9902, 1229, 8704, 9150, 7396, 1611, 4369, 361, 1830, 5033, 1088, 4501, 7430, 4119, 4767, 1844, 1484, 517, 6017, 5574, 2003, 8380, 6837, 494, 3422, 1608, 9448, 1764, 2824, 9932, 2566, 4204];

aij.bubbleSort(unsortedTestArray);
ready
InsertionSort
var unsortedTestArray = [3195, 4189, 2547, 8543, 1533, 5456, 4980, 1849, 8041, 6036, 7067, 8579, 6590, 6739, 8293, 853, 5732, 8730, 7492, 2652, 8207, 9959, 2027, 5756, 1927, 3286, 9304, 3001, 2565, 5737, 826, 1927, 7924, 4521, 8105, 8195, 9879, 7951, 2774, 1362, 2970, 9007, 5191, 4109, 5494, 8192, 7136, 5971, 3631, 4991, 6735, 9593, 9660, 2064, 4619, 6553, 8229, 437, 5385, 5476, 7482, 6320, 6788, 6887, 9482, 9740, 7696, 4113, 9902, 1229, 8704, 9150, 7396, 1611, 4369, 361, 1830, 5033, 1088, 4501, 7430, 4119, 4767, 1844, 1484, 517, 6017, 5574, 2003, 8380, 6837, 494, 3422, 1608, 9448, 1764, 2824, 9932, 2566, 4204];

aij.insertionSort(unsortedTestArray);
ready
SelectionSort
var unsortedTestArray = [3195, 4189, 2547, 8543, 1533, 5456, 4980, 1849, 8041, 6036, 7067, 8579, 6590, 6739, 8293, 853, 5732, 8730, 7492, 2652, 8207, 9959, 2027, 5756, 1927, 3286, 9304, 3001, 2565, 5737, 826, 1927, 7924, 4521, 8105, 8195, 9879, 7951, 2774, 1362, 2970, 9007, 5191, 4109, 5494, 8192, 7136, 5971, 3631, 4991, 6735, 9593, 9660, 2064, 4619, 6553, 8229, 437, 5385, 5476, 7482, 6320, 6788, 6887, 9482, 9740, 7696, 4113, 9902, 1229, 8704, 9150, 7396, 1611, 4369, 361, 1830, 5033, 1088, 4501, 7430, 4119, 4767, 1844, 1484, 517, 6017, 5574, 2003, 8380, 6837, 494, 3422, 1608, 9448, 1764, 2824, 9932, 2566, 4204];

aij.selectionSort(unsortedTestArray);
ready
MergeSort
var unsortedTestArray = [3195, 4189, 2547, 8543, 1533, 5456, 4980, 1849, 8041, 6036, 7067, 8579, 6590, 6739, 8293, 853, 5732, 8730, 7492, 2652, 8207, 9959, 2027, 5756, 1927, 3286, 9304, 3001, 2565, 5737, 826, 1927, 7924, 4521, 8105, 8195, 9879, 7951, 2774, 1362, 2970, 9007, 5191, 4109, 5494, 8192, 7136, 5971, 3631, 4991, 6735, 9593, 9660, 2064, 4619, 6553, 8229, 437, 5385, 5476, 7482, 6320, 6788, 6887, 9482, 9740, 7696, 4113, 9902, 1229, 8704, 9150, 7396, 1611, 4369, 361, 1830, 5033, 1088, 4501, 7430, 4119, 4767, 1844, 1484, 517, 6017, 5574, 2003, 8380, 6837, 494, 3422, 1608, 9448, 1764, 2824, 9932, 2566, 4204];

aij.mergeSort(unsortedTestArray);
ready
QuickSort
var unsortedTestArray = [3195, 4189, 2547, 8543, 1533, 5456, 4980, 1849, 8041, 6036, 7067, 8579, 6590, 6739, 8293, 853, 5732, 8730, 7492, 2652, 8207, 9959, 2027, 5756, 1927, 3286, 9304, 3001, 2565, 5737, 826, 1927, 7924, 4521, 8105, 8195, 9879, 7951, 2774, 1362, 2970, 9007, 5191, 4109, 5494, 8192, 7136, 5971, 3631, 4991, 6735, 9593, 9660, 2064, 4619, 6553, 8229, 437, 5385, 5476, 7482, 6320, 6788, 6887, 9482, 9740, 7696, 4113, 9902, 1229, 8704, 9150, 7396, 1611, 4369, 361, 1830, 5033, 1088, 4501, 7430, 4119, 4767, 1844, 1484, 517, 6017, 5574, 2003, 8380, 6837, 494, 3422, 1608, 9448, 1764, 2824, 9932, 2566, 4204];

aij.quickSort(unsortedTestArray);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.