所以我尝试制作一个模拟自由落体的代码几乎全部完成,除了代码从' 1'开始。而不是' 0'。我的代码是:
var aoo = [5,2,4,6,1,3];
function jInsertionSort(a) {
for(var j=2; j<a.length; j++){
//console.log(j);
var key = a[j];
var i = j - 1;
while (i > 0 && a[i] > key) {
a[i+1] = a[i];
i = i-1;
}
a[i+1]=key;
}
return a;
}
var aooSorted = jInsertionSort(aoo);
console.log("jInsertionSort = ["+aooSorted+"]");
当我运行代码时,列表中的第一个长度&#34; l&#34;是0.000981而不是0我不知道我做错了什么从技术上开始0.01秒后应该是什么。
答案 0 :(得分:3)
您可以使用一些打印来调试它。通过在流程中使用print
,您可以看到正在发生的事情。
没有什么令人惊讶的事,l[0]
是:
l[0] = length1 = Dlength + length = velocity1 * deltaT + lenght =
= (Dvelocity + velocity ) * deltaT + lenght
关键是
Dvelocity = acceleration * deltaT
非零
答案 1 :(得分:2)
第一个循环中的velocity1不为0,因此length1不为0
答案 2 :(得分:1)
原因是你计算加速度之外的速度和你在第一步中不是0的时间步长,因此第一个长度都不是