You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

144 lines
3.6 KiB

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>D3</title>
<link rel="stylesheet" href="vendor/fontawesome/css/font-awesome.css">
<style type='text/css'>
html, body {
font-family:sans-serif;
margin:0;
}
svg {
border:10px solid dodgerblue;
width:940px;
}
.sorter {
border:1px solid #e7e7e7;
margin:20px auto;
padding:10px;
width:960px;
}
.slider {
}
.top {
background:#f88;
}
.bottom {
background:#4e0;
height:100px;
}
button {
border:1px solid #333;
background:#888;
padding:3px;
}
button.fa {
cursor:pointer;
font-size:12px;
height:20px;
line-height:14px;
margin-right:5px;
transition:background 0.2s ease;
width:20px;
}
button:hover {
background:#aaa;
}
</style>
</head>
<body>
for each one: in place? adaptive? stable? swaps. comparisons. random example. best case example. worst case example.
<h1>Quicksort discussion</h1>
used by chrome
<div class="sorter"></div>
<h1>Mergesort discussion</h1>
used by firefox and safari
<div class="sorter"></div>
<h1>Shellsort discussion</h1>
several ways to pick gap width, but dependence on input data makes gap selection trivial
<div class="sorter"></div>
<h1>Selection sort discussion</h1>
http://stackoverflow.com/questions/15799034/insertion-sort-vs-selection-sort
<!--
<h1>Heapsort discussion</h1>
<div class="sorter"></div>
<h1>Bubblesort discussion</h1>
NOTE http://stackoverflow.com/questions/17270628/insertion-sort-vs-bubble-sort-algorithms
<div class="sorter"></div>
<h1>Radixsort discussion</h1>
<div class="sorter"></div>
-->
<script type='text/javascript' src='vendor/d3/d3.min.js'></script>
<script type='text/javascript' src='js/visualizer.js'></script>
<script type='text/javascript' src='js/sorter.js'></script>
<script type='text/javascript' src='js/quicksort.js'></script>
<script type='text/javascript' src='js/mergesort.js'></script>
<script type='text/javascript' src='js/insertionsort.js'></script>
<script type='text/javascript' src='js/shellsort.js'></script>
<script type='text/javascript' src='js/selectionsort.js'></script>
<script type='text/javascript' src='js/bubblesort.js'></script>
<script type='text/javascript' src='js/radixsort.js'></script>
<script type='text/javascript'>
var dump = function(arr) {
var d = [];
arr.forEach(function(obj) {
d.push(obj.value);
})
return d.join(',');
}
var SS = new RadixSort();
var data = SS.generate(15);
console.log('DATA: ' + dump(data));
var shuffled = SS.shuffle(data);
console.log('SHUFFLED: ' + dump(shuffled));
var ordered = Object.create(shuffled);
ordered = SS.sort(ordered, 0, ordered.length - 1);
console.log('ORDERED: ' + dump(ordered));
// Wrap anonymous function to avoid polluting global namespace.
// (function() {
// var elements = document.querySelectorAll('.sorter');
// for (key in elements) {
// if (elements.hasOwnProperty(key)) {
// new Visualizer(elements[key]);
// }
// }
// })();
</script>
</body>
</html>