Jump to content
Main menu
Main menu
move to sidebar
hide
Vakatasosoko
Tabana levu
Soqosoqo toso
Veisau vovou
Vakawasoma tabana
Veivuke
Tabana vakamareqeti
Vaqaqara
Vaqaqara
Appearance
Soli
Create account
Log in
Personal tools
Soli
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Module:Exponential search
Add languages
Module
Veiwasei
English
Read
Edit source
View history
Iyaya
Tools
move to sidebar
hide
Actions
Read
Edit source
View history
General
Sema cava oqo
Veisau e veiwekani
Vakavodoka faile
Page information
Get shortened URL
Download QR code
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
-- This module provides a generic exponential search algorithm. require[[strict]] local checkType = require('libraryUtil').checkType local floor = math.floor local function midPoint(lower, upper) return floor(lower + (upper - lower) / 2) end local function search(testFunc, i, lower, upper) if testFunc(i) then if i + 1 == upper then return i end lower = i if upper then i = midPoint(lower, upper) else i = i * 2 end return search(testFunc, i, lower, upper) else upper = i i = midPoint(lower, upper) return search(testFunc, i, lower, upper) end end return function (testFunc, init) checkType('Exponential search', 1, testFunc, 'function') checkType('Exponential search', 2, init, 'number', true) if init and (init < 1 or init ~= floor(init) or init == math.huge) then error(string.format( "invalid init value '%s' detected in argument #2 to " .. "'Exponential search' (init value must be a positive integer)", tostring(init) ), 2) end init = init or 2 if not testFunc(1) then return nil end return search(testFunc, init, 1, nil) end
Kena i Soqoni
By saving changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Sasamaki
Veisautaki veivuke
(opens in new window)
Preview page with this template
Wikidata entities used in this page
Module:Exponential search
: Sitelink, Description: en
Template used on this page:
Module:Exponential search/doc
(
edit
)
Vaqaqara
Vaqaqara
Editing
Module:Exponential search
Add languages
Add topic