[ create a new paste ] login | about

Link: http://codepad.org/JXlZNCxW    [ raw code | output | fork ]

PHP, pasted on Oct 24:
<?php

$arr = array(0,0,1,2,2,5,6,7,7,9,10,10);
asort($arr);
$n = 2;
$cnt = count($arr);
print_r("cnt=".$cnt."\n");
$counts = array_pad(array(), $cnt, 0);
for ($x=0; $x<$cnt; $x++) {
    print_r("x=".$x."\n");
    $low = $x - 1;
    $lower_range_bound = $arr[$x]-$n;
    print_r("lower_range_bound=".$lower_range_bound."\n");
    while($low >= 0 && ($arr[$low] >= $lower_range_bound)) {
        print_r("low=".$low." arr[low]=".$arr[$low]."\n");
        $counts[$x]++;
        $low--;
    }
    $high = $x + 1;
    $upper_range_bound = $arr[$x]+$n;
    print_r("upper_range_bound=".$upper_range_bound."\n");
    while($high < $cnt && $arr[$high] <= $upper_range_bound) {
        print_r("high=".$high." arr[high]=".$arr[$high]."\n");
        $counts[$x]++;
        $high++;
    }
}
print_r($arr);
print_r($counts);

?>


Output:
cnt=12
x=0
lower_range_bound=-2
upper_range_bound=2
high=1 arr[high]=0
high=2 arr[high]=1
high=3 arr[high]=2
high=4 arr[high]=2
x=1
lower_range_bound=-2
low=0 arr[low]=0
upper_range_bound=2
high=2 arr[high]=1
high=3 arr[high]=2
high=4 arr[high]=2
x=2
lower_range_bound=-1
low=1 arr[low]=0
low=0 arr[low]=0
upper_range_bound=3
high=3 arr[high]=2
high=4 arr[high]=2
x=3
lower_range_bound=0
low=2 arr[low]=1
low=1 arr[low]=0
low=0 arr[low]=0
upper_range_bound=4
high=4 arr[high]=2
x=4
lower_range_bound=0
low=3 arr[low]=2
low=2 arr[low]=1
low=1 arr[low]=0
low=0 arr[low]=0
upper_range_bound=4
x=5
lower_range_bound=3
upper_range_bound=7
high=6 arr[high]=6
high=7 arr[high]=7
high=8 arr[high]=7
x=6
lower_range_bound=4
low=5 arr[low]=5
upper_range_bound=8
high=7 arr[high]=7
high=8 arr[high]=7
x=7
lower_range_bound=5
low=6 arr[low]=6
low=5 arr[low]=5
upper_range_bound=9
high=8 arr[high]=7
high=9 arr[high]=9
x=8
lower_range_bound=5
low=7 arr[low]=7
low=6 arr[low]=6
low=5 arr[low]=5
upper_range_bound=9
high=9 arr[high]=9
x=9
lower_range_bound=7
low=8 arr[low]=7
low=7 arr[low]=7
upper_range_bound=11
high=10 arr[high]=10
high=11 arr[high]=10
x=10
lower_range_bound=8
low=9 arr[low]=9
upper_range_bound=12
high=11 arr[high]=10
x=11
lower_range_bound=8
low=10 arr[low]=10
low=9 arr[low]=9
upper_range_bound=12
Array
(
    [1] => 0
    [0] => 0
    [2] => 1
    [4] => 2
    [3] => 2
    [5] => 5
    [6] => 6
    [8] => 7
    [7] => 7
    [9] => 9
    [11] => 10
    [10] => 10
)
Array
(
    [0] => 4
    [1] => 4
    [2] => 4
    [3] => 4
    [4] => 4
    [5] => 3
    [6] => 3
    [7] => 4
    [8] => 4
    [9] => 4
    [10] => 2
    [11] => 2
)


Create a new paste based on this one


Comments: