Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Custom sort method: Bubble vs Insertion vs Selection
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36
Browser:
Chrome Mobile 122
Operating system:
Android
Device Platform:
Mobile
Date tested:
2 years ago
Test name
Executions per second
Bubble sort
396331.7 Ops/sec
Insertion sort
399615.7 Ops/sec
Selection sort
403559.6 Ops/sec
Script Preparation code:
window.users = [ { name: 'Ваня', level: '3' }, { name: 'Саша', level: '1' }, { name: 'Маша', level: '2' }, { name: 'Ника', level: '3' }, { name: 'Вера', level: '1' }, { name: 'Саша', level: '2' }, { name: 'Ваня', level: '2' } ]; function swap(items, left, right) { var temp = []; if (left !== right) { temp = items[left]; items[left] = items[right]; items[right] = temp; } } function getItem(item, fieldName) { if (fieldName) { item = item[fieldName] } return item; } function bubbleSort(array, fieldName) { let { length } = array, items = [], i; while (length--) { items[length] = array[length]; } let swapped = true; while (swapped) { swapped = false; for (i = 1; i < length; i++) { if (getItem(items[i - 1], fieldName) > getItem(items[i], fieldName) && getItem(items[i - 1], fieldName) !== getItem(items[i], fieldName)) { swap(items, i - 1, i); swapped = true; } } } return items; } function insertionSort(array, fieldName) { let { length } = array, items = []; let i, j, current; while (length--) { items[length] = array[length]; } for (i = 1; i < length; i++) { current = items[i]; j = i; while (j > 0 && getItem(items[j - 1], fieldName) > getItem(current, fieldName)) { items[j] = items[j - 1]; j--; } items[j] = current; } return items; } function selectionSort(array, fieldName) { let { length } = array, items = []; let i, j, indexMin; while (length--) { items[length] = array[length]; } for (i = 0; i < length - 1; i++) { indexMin = i; for (j = i + 1; j < length; j++) { if (getItem(items[indexMin], fieldName) > getItem(items[j], fieldName)) { indexMin = j; } } swap(items, indexMin, i); } return items; }
Tests:
Bubble sort
bubbleSort(users, "level")
Insertion sort
insertionSort(users, "level")
Selection sort
selectionSort(users, "level")