Algorithm Sorting Comparison Calculator

ANALife Services AuthorityNational Calculator Authority›Algorithm Sorting Comparison Calculator

.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }

Algorithm Sorting Comparison Calculator

Compare the estimated operation counts and space usage of common sorting algorithms for a given array size n.

Array Size (n)

Algorithm

Bubble Sort Selection Sort Insertion Sort Merge Sort Quick Sort (avg) Heap Sort Counting Sort Radix Sort (base 10) Compare All

Max Value k (for Counting/Radix)

Calculate Results will appear here.

document.getElementById('alg-algo').addEventListener('change', function() { var v = this.value; var kRow = document.getElementById('alg-k-row'); kRow.style.display = (v === 'counting' || v === 'radix' || v === 'all') ? 'block' : 'none'; });

function fmtNum(x) { if (!isFinite(x)) return '∞'; if (x >= 1e12) return (x / 1e12).toFixed(2) + ' T'; if (x >= 1e9) return (x / 1e9).toFixed(2) + ' B'; if (x >= 1e6) return (x / 1e6).toFixed(2) + ' M'; if (x >= 1e3) return (x / 1e3).toFixed(2) + ' K'; return x.toFixed(0); }

function log2(x) { return Math.log(x) / Math.log(2); }

function getComplexities(algo, n, k) { var d = Math.max(Math.ceil(Math.log10(k + 1)), 1); var algos = { bubble: { name:'Bubble Sort', best: n, avg: nn, worst: nn, space: 1, stable: true }, selection: { name:'Selection Sort', best: nn, avg: nn, worst: nn, space: 1, stable: false }, insertion: { name:'Insertion Sort', best: n, avg: nn/2, worst: nn, space: 1, stable: true }, merge: { name:'Merge Sort', best: nlog2(n), avg: nlog2(n), worst: nlog2(n), space: n, stable: true }, quick: { name:'Quick Sort (avg)', best: nlog2(n), avg: nlog2(n), worst: nn, space: log2(n), stable: false }, heap: { name:'Heap Sort', best: nlog2(n), avg: nlog2(n), worst: nlog2(n), space: 1, stable: false }, counting: { name:'Counting Sort', best: n+k, avg: n+k, worst: n+k, space: n+k, stable: true }, radix: { name:'Radix Sort (b=10)', best: d(n+10), avg: d(n+10), worst: d*(n+10), space: n+10, stable: true } }; if (algo === 'all') return algos; var r = {}; r[algo] = algos[algo]; return r; }

function algCalc() { var nVal = parseFloat(document.getElementById('alg-n').value); var algo = document.getElementById('alg-algo').value; var kVal = parseFloat(document.getElementById('alg-k').value) || nVal; var res = document.getElementById('alg-result');

if (!nVal || nVal Please enter a valid positive integer for n.'; return; } if (nVal > 10000000) { res.innerHTML = 'n must be ≤ 10,000,000 for meaningful display.'; return; } if ((algo === 'counting' || algo === 'radix' || algo === 'all') && (!kVal || kVal Please enter a valid max value k ≥ 1.'; return; }

var data = getComplexities(algo, nVal, kVal); var keys = Object.keys(data);

var html = '### Results for n = ' + nVal.toLocaleString() + ' '; html += ''; html += '' + 'Algorithm' + 'Best Case Ops' + 'Avg Case Ops' + 'Worst Case Ops' + 'Space' + 'Stable?' + '';

var bestAvg = Infinity, bestAlgo = ''; keys.forEach(function(k) { if (data[k].avg 1) ? 'font-weight:bold;color:#27ae60;' : ''; html += '' + '' + d.name + (k === bestAlgo && keys.length > 1 ? ' ★' : '') + '' + '' + fmtNum(d.best) + '' + '' + fmtNum(d.avg) + '' + '' + fmtNum(d.worst) + '' + 'O(' + fmtNum(d.space) + ')' + '' + (d.stable ? '✅' : '❌') + '' + ''; }); html += '';

if (keys.length > 1) { html += '★ Best average-case performer for n = ' + nVal.toLocaleString() + ': ' + data[bestAlgo].name + '

'; }

// Estimated time at 10^8 ops/sec html += '#### Estimated Wall-Clock Time (@ 10⁸ comparisons/sec) '; html += ''; html += '' + 'Algorithm' + 'Best' + 'Average' + 'Worst' + '';

function fmtTime(ops) { var sec = ops / 1e8; if (sec ' + '' + d.name + '' + '' + fmtTime(d.best) + '' + '' + fmtTime(d.avg) + '' + '' + fmtTime(d.worst) + '' + ''; }); html += ''; res.innerHTML = html; }

#### Formulas (Operation Counts)

Bubble / Selection Sort: O(n²) — Best: n, Avg/Worst: n² Insertion Sort: Best: n, Avg: n²/2, Worst: n² Merge Sort: Θ(n log₂ n) all cases; Space: O(n) Quick Sort: Best/Avg: n log₂ n, Worst: n² (bad pivot); Space: O(log n) stack Heap Sort: Θ(n log₂ n) all cases; Space: O(1) Counting Sort: Θ(n + k) all cases; Space: O(n + k) Radix Sort (base 10): Θ(d·(n + 10)) where d = ⌈log₁₀(k+1)⌉; Space: O(n + 10) Wall-clock estimate assumes 10⁸ operations per second.

#### Assumptions & References

More Calculators

Read Next

Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...

References