stop bubble sort revisiting already sorted elements

This commit is contained in:
Albert Still 2018-05-24 16:04:59 +10:00
parent 3e0ac7486c
commit d0ed0af42b
2 changed files with 4 additions and 4 deletions

View File

@ -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]);

View File

@ -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', () => {