{"id":"https://openalex.org/W2220328383","doi":"https://doi.org/10.1145/3053370","title":"Array Layouts for Comparison-Based Searching","display_name":"Array Layouts for Comparison-Based Searching","publication_year":2017,"publication_date":"2017-05-10","ids":{"openalex":"https://openalex.org/W2220328383","doi":"https://doi.org/10.1145/3053370","mag":"2220328383"},"language":"en","primary_location":{"id":"doi:10.1145/3053370","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3053370","pdf_url":null,"source":{"id":"https://openalex.org/S201104086","display_name":"ACM Journal of Experimental Algorithmics","issn_l":"1084-6654","issn":["1084-6654"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Journal of Experimental Algorithmics","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5090984720","display_name":"Paul-Virak Khuong","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Paul-Virak Khuong","raw_affiliation_strings":["AppNexus, New York"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"AppNexus, New York","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5045902784","display_name":"Pat Morin","orcid":"https://orcid.org/0000-0003-0471-4118"},"institutions":[{"id":"https://openalex.org/I67031392","display_name":"Carleton University","ror":"https://ror.org/02qtvee93","country_code":"CA","type":"education","lineage":["https://openalex.org/I67031392"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Pat Morin","raw_affiliation_strings":["Carleton University, Ottawa, Canada"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Carleton University, Ottawa, Canada","institution_ids":["https://openalex.org/I67031392"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":3.1319,"has_fulltext":false,"cited_by_count":32,"citation_normalized_percentile":{"value":0.92997233,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":99},"biblio":{"volume":"22","issue":null,"first_page":"1","last_page":"39"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9997000098228455,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9997000098228455,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11269","display_name":"Algorithms and Data Compression","score":0.9991999864578247,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11181","display_name":"Advanced Data Storage Technologies","score":0.9984999895095825,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8091369867324829},{"id":"https://openalex.org/keywords/cache","display_name":"Cache","score":0.5919153690338135},{"id":"https://openalex.org/keywords/binary-search-algorithm","display_name":"Binary search algorithm","score":0.5347233414649963},{"id":"https://openalex.org/keywords/value","display_name":"Value (mathematics)","score":0.47146040201187134},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.4393247067928314},{"id":"https://openalex.org/keywords/binary-tree","display_name":"Binary tree","score":0.4288899302482605},{"id":"https://openalex.org/keywords/binary-number","display_name":"Binary number","score":0.4276805520057678},{"id":"https://openalex.org/keywords/latency","display_name":"Latency (audio)","score":0.4138176441192627},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.3712227940559387},{"id":"https://openalex.org/keywords/search-algorithm","display_name":"Search algorithm","score":0.3360744118690491},{"id":"https://openalex.org/keywords/arithmetic","display_name":"Arithmetic","score":0.2455560863018036},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.17620348930358887}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8091369867324829},{"id":"https://openalex.org/C115537543","wikidata":"https://www.wikidata.org/wiki/Q165596","display_name":"Cache","level":2,"score":0.5919153690338135},{"id":"https://openalex.org/C121610932","wikidata":"https://www.wikidata.org/wiki/Q243754","display_name":"Binary search algorithm","level":3,"score":0.5347233414649963},{"id":"https://openalex.org/C2776291640","wikidata":"https://www.wikidata.org/wiki/Q2912517","display_name":"Value (mathematics)","level":2,"score":0.47146040201187134},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.4393247067928314},{"id":"https://openalex.org/C197855036","wikidata":"https://www.wikidata.org/wiki/Q380172","display_name":"Binary tree","level":2,"score":0.4288899302482605},{"id":"https://openalex.org/C48372109","wikidata":"https://www.wikidata.org/wiki/Q3913","display_name":"Binary number","level":2,"score":0.4276805520057678},{"id":"https://openalex.org/C82876162","wikidata":"https://www.wikidata.org/wiki/Q17096504","display_name":"Latency (audio)","level":2,"score":0.4138176441192627},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.3712227940559387},{"id":"https://openalex.org/C125583679","wikidata":"https://www.wikidata.org/wiki/Q755673","display_name":"Search algorithm","level":2,"score":0.3360744118690491},{"id":"https://openalex.org/C94375191","wikidata":"https://www.wikidata.org/wiki/Q11205","display_name":"Arithmetic","level":1,"score":0.2455560863018036},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.17620348930358887},{"id":"https://openalex.org/C119857082","wikidata":"https://www.wikidata.org/wiki/Q2539","display_name":"Machine learning","level":1,"score":0.0},{"id":"https://openalex.org/C76155785","wikidata":"https://www.wikidata.org/wiki/Q418","display_name":"Telecommunications","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3053370","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3053370","pdf_url":null,"source":{"id":"https://openalex.org/S201104086","display_name":"ACM Journal of Experimental Algorithmics","issn_l":"1084-6654","issn":["1084-6654"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Journal of Experimental Algorithmics","raw_type":"journal-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[{"id":"https://openalex.org/F4320334593","display_name":"Natural Sciences and Engineering Research Council of Canada","ror":"https://ror.org/01h531d29"}],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":19,"referenced_works":["https://openalex.org/W28758523","https://openalex.org/W100509257","https://openalex.org/W1539580421","https://openalex.org/W2002560134","https://openalex.org/W2019235922","https://openalex.org/W2038142281","https://openalex.org/W2050078636","https://openalex.org/W2051283794","https://openalex.org/W2083576929","https://openalex.org/W2095875205","https://openalex.org/W2105194472","https://openalex.org/W2105220449","https://openalex.org/W2149172130","https://openalex.org/W2151224499","https://openalex.org/W2651109047","https://openalex.org/W2988776305","https://openalex.org/W3198470706","https://openalex.org/W4240200084","https://openalex.org/W4316074605"],"related_works":["https://openalex.org/W2582091787","https://openalex.org/W2363556447","https://openalex.org/W2998661990","https://openalex.org/W2811435312","https://openalex.org/W843542728","https://openalex.org/W4213195198","https://openalex.org/W2354443135","https://openalex.org/W2355136637","https://openalex.org/W3009574019","https://openalex.org/W2382626982"],"abstract_inverted_index":{"We":[0],"attempt":[1],"to":[2,10,46,62,75,179,222,228],"determine":[3],"the":[4,35,53,63,76,84,99,103,111,130,160,164,169,194,204],"best":[5],"order":[6],"and":[7,102,118,176,186,196,226],"search":[8,80],"algorithm":[9],"store":[11],"n":[12,23,137,155,211],"comparable":[13],"data":[14],"items":[15],"in":[16,38,71,110],"an":[17,93],"array,":[18,65],"A":[19,39,66],",":[20,32,67,138,156],"of":[21,124,136,146,154,210],"length":[22],"so":[24],"we":[25,51,82,127,157],"can,":[26],"for":[27,91,133,207],"any":[28],"query":[29],"value,":[30],"x":[31,47],"quickly":[33],"find":[34],"smallest":[36],"value":[37],"that":[40,97,163,192],"is":[41,149,167,174],"greater":[42],"than":[43,203],"or":[44],"equal":[45],".":[48,212],"In":[49,73],"particular,":[50],"consider":[52,83],"important":[54],"case":[55],"where":[56],"there":[57],"are":[58],"many":[59],"such":[60],"queries":[61],"same":[64],"which":[68],"resides":[69],"entirely":[70],"RAM.":[72],"addition":[74],"obvious":[77],"sorted":[78,139],"order/binary":[79],"combination":[81],"Eytzinger":[85,100,165,205],"breadth-first-search":[86],"(BFS)":[87],"layout":[88,96,107,166,206],"normally":[89],"used":[90,109],"heaps,":[92],"implicit":[94],"B-tree":[95,195],"generalizes":[98],"layout,":[101],"van":[104,197],"Emde":[105,198],"Boas":[106,199],"commonly":[108],"cache-oblivious":[112],"algorithms":[113],"literature.":[114],"After":[115],"extensive":[116],"testing":[117],"tuning":[119],"on":[120],"a":[121,143],"wide":[122],"variety":[123],"modern":[125],"hardware,":[126],"arrive":[128,158],"at":[129,159],"conclusion":[131,162,173],"that,":[132],"small":[134],"values":[135,153,209],"order,":[140],"combined":[141],"with":[142],"good":[144],"implementation":[145],"binary":[147],"search,":[148],"best.":[150],"For":[151],"larger":[152],"surprising":[161],"usually":[168],"fastest.":[170],"The":[171],"latter":[172],"unexpected":[175],"goes":[177],"counter":[178],"earlier":[180],"experimental":[181],"work":[182],"by":[183],"Brodal,":[184],"Fagerberg,":[185],"Jacob":[187],"(SODA":[188],"2003),":[189],"who":[190],"concluded":[191],"both":[193],"layouts":[200],"were":[201],"faster":[202],"large":[208],"Our":[213],"fastest":[214],"C++":[215],"implementations,":[216],"when":[217],"compiled,":[218],"use":[219],"conditional":[220],"moves":[221],"avoid":[223],"branch":[224],"mispredictions":[225],"prefetching":[227],"reduce":[229],"cache":[230],"latency.":[231]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":1},{"year":2023,"cited_by_count":2},{"year":2022,"cited_by_count":9},{"year":2021,"cited_by_count":4},{"year":2020,"cited_by_count":6},{"year":2019,"cited_by_count":2},{"year":2018,"cited_by_count":5},{"year":2017,"cited_by_count":1},{"year":2013,"cited_by_count":1}],"updated_date":"2026-05-21T06:26:12.895304","created_date":"2025-10-10T00:00:00"}
