Difference between revisions of "Template:Size"

From QBWiki
Jump to navigation Jump to search
m
m
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
−
<includeonly>{{#vardefine:page|{{{1}}}}}{{#vardefine:minindex|1}}{{#vardefine:maxindex|2}}
+
<includeonly>{{#vardefine:page|{{{1}}}}}{{#vardefine:minindex|0}}{{#vardefine:maxindex|1}}<!--
−
{{#while:
+
Find the upper bound of the size in steps of 2^n
 +
-->{{#while:
 
|{{{{#var:page}}|{{#var:maxindex}}}}
 
|{{{{#var:page}}|{{#var:maxindex}}}}
 
|{{#vardefine:minindex|{{#var:maxindex}}}}{{Multiply|maxindex|2}}
 
|{{#vardefine:minindex|{{#var:maxindex}}}}{{Multiply|maxindex|2}}
−
}}{{#vardefine:index|{{#expr:floor(({{#var:maxindex}}+{{#var:minindex}})/2)}}}}{{#dowhile:
+
}}{{#vardefine:index|{{#expr:floor(({{#var:maxindex}}+{{#var:minindex}})/2)}}}}<!--
−
|{{#ifexpr:{{#var:maxindex}}+1<{{#var:minindex}}|continue}}
+
Perform a binary search between [2^n-1, 2^n] to find the last element of the list
−
|{{#if:{{{{#var:page}}|{{#var:index}}}}
+
-->{{#while:
−
<!--undershoot-->|{{#ifexpr:{{#var:index}}>{{#var:maxindex}}|{{#vardefine:maxindex|{{#var:index}}}}}}
+
|{{#ifexpr:{{#var:minindex}}+1<{{#var:maxindex}}|true}}
−
<!-- overshoot-->|{{#ifexpr:{{#var:index}}<{{#var:minindex}}|{{#vardefine:minindex|{{#var:index}}}}}}
+
|
 +
{{#if:{{{{#var:page}}|{{#var:index}}}}
 +
<!--undershoot-->|{{#vardefine:minindex|{{#var:index}}}}
 +
<!-- overshoot-->|{{#vardefine:maxindex|{{#var:index}}}}
 
}}
 
}}
−
}}{{#vardefine:index|{{#expr:floor(({{#var:maxindex}}+{{#var:minindex}})/2)}}}}{{#expr:{{#var:index}}-1}}</includeonly><noinclude>
+
{{#vardefine:index|{{#expr:floor(({{#var:maxindex}}+{{#var:minindex}})/2)}}}}
−
Get size of list
+
}}{{#var:index}}</includeonly><noinclude>
 +
{{Template doc|
 +
Get size of a list given a template that maps index -> entry.
  
−
{| class="wikitable"
+
Largely deprecated by [[Template:List lookup helper|List lookup helper]].
−
! list
+
 
−
! size
+
<pre>
−
|-
+
{{Size|Quick links lingo}}
−
|[[QBWiki:Quick links/lingo|Quick links lingo]]
+
 
−
|{{Size|Quick links lingo}}
+
{{Size|Anecdote}}
−
|-
+
</pre>
−
|Anecdote
+
 
−
|{{Size|Anecdote}}
+
{{Size|Quick links lingo}}
−
|}
+
 
−
</noinclude>
+
{{Size|Anecdote}}
 +
}}</noinclude>

Latest revision as of 00:28, 15 December 2025

Template documentation

Get size of a list given a template that maps index -> entry.

Largely deprecated by List lookup helper.

{{Size|Quick links lingo}}

{{Size|Anecdote}}

12

0