Difference between revisions of "Template:Size"

From QBWiki
Jump to navigation Jump to search
m
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)}}}}
 +
}}{{#var:index}}</includeonly><noinclude>
 
Get size of list
 
Get size of list
  

Revision as of 14:46, 8 December 2025

Get size of list

list size
Quick links lingo 5
Anecdote 0