Last active
August 30, 2015 13:49
-
-
Save abevieiramota/358047c160dbaf1307d6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.6/d3.min.js" charset="utf-8"></script> | |
</head> | |
<body> | |
<script type="text/javascript"> | |
var dataset = [5,2,4,7,9,1,0,3,8,6]; | |
var POS_X = 10; | |
var SVG_WIDTH = 20*dataset.length; | |
var SVG_HEIGHT = 500; | |
var TRANSITION_DURATION = 1000; | |
var TRANSITION_DELAY = 1000; | |
var svg = d3 | |
.select("body") | |
.append("svg") | |
.attr("width", SVG_WIDTH) | |
.attr("height", SVG_HEIGHT); | |
var show_arr = function(arr) { | |
for(var i=0;i<arr.length;i++) { | |
_dataset[i] = arr[i]; | |
}; | |
var _dataset = d3.entries(_dataset); | |
var rects_w_data = svg | |
.selectAll("rect") | |
.data(_dataset, function(d) { return d.key;}) | |
.enter() | |
.append("rect") | |
.attr("x", function(d, i) { return i*20;}) | |
.attr("y", function(d){ return SVG_HEIGHT - d.value * 10;}) | |
.attr("width", 10) | |
.attr("height", function(d){ return d.value * 10;}); | |
} | |
var update_arr = function(dataset, delay) { | |
var _dataset = d3.entries(dataset); | |
svg | |
.selectAll("rect") | |
.data(_dataset, function(d) { return d.key;}) | |
.transition() | |
.delay(delay) | |
.duration(1000) | |
.ease("bounce") | |
.attr("y", function(d){ return SVG_HEIGHT - d.value * 20;}); | |
} | |
var switch_arr = function(arr) { | |
// TODO: verificar se i e j estão dentro do domínio | |
// TODO: verificar se arr é array rs | |
}; | |
var bubble_sort = function(arr) { | |
show_arr(arr); | |
for(var i=0;i<arr.length - 1;i++) { | |
var min_value = arr[i]; | |
var ix_min_value = i; | |
for(var j=i;j<arr.length;j++) { | |
if(arr[j] < min_value) { | |
min_value = arr[j]; | |
ix_min_value = j; | |
} | |
}; | |
var temp = arr[i]; | |
arr[i] = min_value; | |
arr[ix_min_value] = temp; | |
var _dataset = {}; | |
_dataset[i] = min_value; | |
_dataset[ix_min_value] = temp; | |
update_arr(_dataset, i*1500); | |
}; | |
return arr; | |
}; | |
bubble_sort(dataset); | |
</script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment