Skip to content

Commit

Permalink
stop bubble sort revisiting already sorted elements
Browse files Browse the repository at this point in the history
  • Loading branch information
albertstill committed May 24, 2018
1 parent 3e0ac74 commit d0ed0af
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
4 changes: 2 additions & 2 deletions src/algorithms/sorting/bubble-sort/BubbleSort.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ export default class BubbleSort extends Sort {
// Clone original array to prevent its modification.
const array = originalArray.slice(0);

for (let i = 0; i < array.length; i += 1) {
for (let i = 1; i < array.length; i += 1) {
swapped = false;

// Call visiting callback.
this.callbacks.visitingCallback(array[i]);

for (let j = 0; j < array.length - 1; j += 1) {
for (let j = 0; j < array.length - i; j += 1) {
// Call visiting callback.
this.callbacks.visitingCallback(array[j]);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ import {

// Complexity constants.
const SORTED_ARRAY_VISITING_COUNT = 20;
const NOT_SORTED_ARRAY_VISITING_COUNT = 280;
const REVERSE_SORTED_ARRAY_VISITING_COUNT = 400;
const NOT_SORTED_ARRAY_VISITING_COUNT = 189;
const REVERSE_SORTED_ARRAY_VISITING_COUNT = 209;
const EQUAL_ARRAY_VISITING_COUNT = 20;

describe('BubbleSort', () => {
Expand Down

0 comments on commit d0ed0af

Please sign in to comment.