{"id":33003038,"url":"https://github.com/mattreecebentley/plf_indiesort","last_synced_at":"2025-11-18T08:03:21.069Z","repository":{"id":93359227,"uuid":"275111180","full_name":"mattreecebentley/plf_indiesort","owner":"mattreecebentley","description":"A sort wrapper enabling both use of random-access sorting on non-random access containers, and increased performance for the sorting of large types.","archived":false,"fork":false,"pushed_at":"2025-07-11T00:05:36.000Z","size":68,"stargazers_count":20,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-07-11T05:52:32.858Z","etag":null,"topics":["sort","sorting"],"latest_commit_sha":null,"homepage":"https://plflib.org/indiesort.htm","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"zlib","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mattreecebentley.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-26T08:42:07.000Z","updated_at":"2025-07-11T00:05:40.000Z","dependencies_parsed_at":"2024-05-02T00:53:22.202Z","dependency_job_id":"fefa4058-2020-4766-84d3-056ec1435096","html_url":"https://github.com/mattreecebentley/plf_indiesort","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mattreecebentley/plf_indiesort","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattreecebentley%2Fplf_indiesort","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattreecebentley%2Fplf_indiesort/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattreecebentley%2Fplf_indiesort/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattreecebentley%2Fplf_indiesort/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mattreecebentley","download_url":"https://codeload.github.com/mattreecebentley/plf_indiesort/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattreecebentley%2Fplf_indiesort/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285028340,"owners_count":27102545,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-18T02:00:05.759Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["sort","sorting"],"created_at":"2025-11-13T14:00:38.909Z","updated_at":"2025-11-18T08:03:21.055Z","avatar_url":"https://github.com/mattreecebentley.png","language":"C++","funding_links":[],"categories":["Sorting"],"sub_categories":[],"readme":"# plf_indiesort\nA sort wrapper enabling use of random-access (eg. std::sort) sorting on non-random access containers, and increased performance for the sorting of large types in random-access containers.\n\nIt has a temporary memory cost of N * (sizeof(pointer) + sizeof(size_t)) for sorting non-random-access iterators/containers,\u003cbr\u003e\nand a N * sizeof(U) cost for random-access iterators/containers, where U = the smallest unsigned integer able to store N. For example if the size of the range being sorted is \u0026lt;= 255, U will be unsigned char.\n\nIndiesort should be used when:\n\n* The temporary memory cost mentioned is non-problematic,\n* The container or iterators are not random_access and therefore std::sort cannot be used, and/or\n* The element type is large or non-trivially-movable/copyable.\n\n\nIt is, on average across all numbers of sorted elements:\n\n* +146% faster than std::sort when used on vectors or arrays of large structs (496 bytes). Crossover point for increased performance over std::sort is any type larger than 152 bytes.\n* +28% faster than std::list's internal sort, on types smaller than 272 bytes.\n\nstd::list's internal sort is faster for types larger than 272 bytes (as it only writes previous and next pointers) and std::sort is faster on vectors and arrays for types smaller than 152 bytes.\nC++98/03/11/14/etc-compatible.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattreecebentley%2Fplf_indiesort","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmattreecebentley%2Fplf_indiesort","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattreecebentley%2Fplf_indiesort/lists"}