2010-08-16 4 views
0

Я не уверен, что, если, когда они пишут 1, если это первый или второй элемент массива:Включает ли этот псевдокод нулевой индекс?

function DouglasPeucker(PointList[], epsilon) 
//Find the point with the maximum distance 
dmax = 0 
index = 0 
for i = 2 to (length(PointList) - 1) 
    d = OrthogonalDistance(PointList[i], Line(PointList[1], PointList[end])) 
    if d > dmax 
    index = i 
    dmax = d 
    end 
end 

//If max distance is greater than epsilon, recursively simplify 
if dmax >= epsilon 
    //Recursive call 
    recResults1[] = DouglasPeucker(PointList[1...index], epsilon) 
    recResults2[] = DouglasPeucker(PointList[index...end], epsilon) 

    // Build the result list 
    ResultList[] = {recResults1[1...end-1] recResults2[1...end]} 
else 
    ResultList[] = {PointList[1], PointList[end]} 
end 

//Return the result 
return ResultList[] 
end 

, например, я уверен, реализации этого в C++ так, где он говорит, что при г = 2, должен ли я сделать для int i = 1?

Благодаря

ответ

2

На догадке, он выглядит как индекс 1 является первым элементом в массиве (в противном случае первый элемент никогда не индексируется в любом месте). Лучший способ сказать наверняка, вероятно, попробовать это, хотя :)

+0

Хорошо спасибо :). – jmasterx

1

Это 1-индексированный. Обратите внимание на строку:

recResults1[] = DouglasPeucker(PointList[1...index], epsilon) 

, а также:

ResultList[] = {recResults1[1...end-1] recResults2[1...end]} 

Оба доступа от начала списка.

Смежные вопросы