diff options
Diffstat (limited to 'test/bench/binary-tree.go')
| -rw-r--r-- | test/bench/binary-tree.go | 36 | 
1 files changed, 18 insertions, 18 deletions
| diff --git a/test/bench/binary-tree.go b/test/bench/binary-tree.go index 88497d490..9f867d11a 100644 --- a/test/bench/binary-tree.go +++ b/test/bench/binary-tree.go @@ -37,56 +37,56 @@ POSSIBILITY OF SUCH DAMAGE.  package main  import ( -	"flag"; -	"fmt"; +	"flag" +	"fmt"  )  var n = flag.Int("n", 15, "depth")  type Node struct { -	item		int; -	left, right	*Node; +	item        int +	left, right *Node  }  func bottomUpTree(item, depth int) *Node {  	if depth <= 0 {  		return &Node{item: item}  	} -	return &Node{item, bottomUpTree(2*item-1, depth-1), bottomUpTree(2*item, depth-1)}; +	return &Node{item, bottomUpTree(2*item-1, depth-1), bottomUpTree(2*item, depth-1)}  }  func (n *Node) itemCheck() int {  	if n.left == nil {  		return n.item  	} -	return n.item + n.left.itemCheck() - n.right.itemCheck(); +	return n.item + n.left.itemCheck() - n.right.itemCheck()  }  const minDepth = 4  func main() { -	flag.Parse(); +	flag.Parse() -	maxDepth := *n; +	maxDepth := *n  	if minDepth+2 > *n {  		maxDepth = minDepth + 2  	} -	stretchDepth := maxDepth + 1; +	stretchDepth := maxDepth + 1 -	check := bottomUpTree(0, stretchDepth).itemCheck(); -	fmt.Printf("stretch tree of depth %d\t check: %d\n", stretchDepth, check); +	check := bottomUpTree(0, stretchDepth).itemCheck() +	fmt.Printf("stretch tree of depth %d\t check: %d\n", stretchDepth, check) -	longLivedTree := bottomUpTree(0, maxDepth); +	longLivedTree := bottomUpTree(0, maxDepth)  	for depth := minDepth; depth <= maxDepth; depth += 2 { -		iterations := 1 << uint(maxDepth-depth+minDepth); -		check = 0; +		iterations := 1 << uint(maxDepth-depth+minDepth) +		check = 0  		for i := 1; i <= iterations; i++ { -			check += bottomUpTree(i, depth).itemCheck(); -			check += bottomUpTree(-i, depth).itemCheck(); +			check += bottomUpTree(i, depth).itemCheck() +			check += bottomUpTree(-i, depth).itemCheck()  		} -		fmt.Printf("%d\t trees of depth %d\t check: %d\n", iterations*2, depth, check); +		fmt.Printf("%d\t trees of depth %d\t check: %d\n", iterations*2, depth, check)  	} -	fmt.Printf("long lived tree of depth %d\t check: %d\n", maxDepth, longLivedTree.itemCheck()); +	fmt.Printf("long lived tree of depth %d\t check: %d\n", maxDepth, longLivedTree.itemCheck())  } | 
