A sorting script needs to be created in C.
It is necessary to implement the fastest possible sorting algorithm for a bit array (0 and 1) with the ability for 100% reverse recovery.
Task essence:
We have an array of 0s and 1s (up to 8 MB)
It needs to be sorted: all 1s on the left, all 0s on the right → "111...000"
But without losing the original order:
that is, it is necessary to preserve only the rank of the permutation, not the full list of positions
Key requirements:
Without saving the list of positions of 1s
Only rank (unique permutation number)
Rank must be converted into a short seed (for example, 60 characters)
It must be possible to restore the full original order from seed + N + K
If you can implement the reverse function unrank() — that’s a plus
GMP, OpenMP, SIMD, etc. can be used
Required skills:
Excellent knowledge of C or C++
Experience with ranking algorithms, combinations, permutations
Knowledge of combinatorics (C(n, k)) in practice
Experience working with large numbers (__int128, GMP or Boost)
Performance optimization (multithreading, SIMD, caching)
-
2 days99 USD2 days99 USD
Good day!
Your task is exactly the challenge that I am interested in implementing. I am well-versed in combinatorics, ranking combinations, and working with large numbers, and I understand how to optimize calculations in C/C++.
-
2 days100 USD
45 1 0 2 days100 USDHello! I have experience with C++ and optimizing algorithms for working with large arrays. I will implement an efficient sorting script for an array of 0/1 with the ability for complete recovery through a unique rank. I have experience with combinatorics and rank/unrank functions. I am ready to start immediately.
-
1 day99 USD
58 1 0 1 day99 USDI focus on the result, working with respect for the task and details.
-
3 days100 USD
188 3 days100 USDGood day, there is already a ready example of such code in C++, we can edit everything according to your wishes.
-
1 day100 USD
144 1 day100 USDHello, my name is Javid.
I will implement quicksort for a bit array while preserving order through ranking combinations — seed ≤ 60 characters, without a position list.
I will do rank/unrank with GMP or __int128, optimizing with SIMD/OpenMP.
Rate $30/hour
-
10 days200 USD
1299 44 5 1 10 days200 USDGood day. I am ready to complete the task. Please contact me privately for clarification of details.
-
1 day100 USD
2381 156 5 1 day100 USDGood day.
Feel free to contact me, I will gladly complete the task quickly and efficiently.
-
5 days100 USD
1970 45 3 1 5 days100 USDI am ready to help you create a function for permuting an array of bits. I guarantee high quality of execution and quick completion of the project.
-
2 days100 USD
2536 51 1 2 days100 USDHello!
I am ready to implement a high-performance algorithm for sorting bit arrays with the capability of 100% recovery by preserving only the rank of the permutation. I have a good understanding of combinatorial principles, particularly working with C(n, k) and binomial coefficients, and I have experience implementing rank/unrank algorithms for combinations.
What I can offer:
• Implementation in C or C++ using GMP or __int128 for working with large numbers (if needed — Boost.Multiprecision).
• Optimization through SIMD, OpenMP, or other acceleration methods for arrays up to 8 MB.
• Providing a compact seed (for example, base62 or base85) from which the original array can be accurately restored, knowing N (the length of the array) and K (the number of 1s).
• Support for the unrank() function to restore the full order.
… • Clean, commented code and unit tests.
Experience:
• I have rewritten similar algorithms from Python to C for tasks in the fields of cryptography, hashing, and bioinformatics.
• I have worked with combination algorithms in enumeration and unique encoding tasks.
• I have implemented parallel computations (OpenMP, pthreads) on large datasets.
I am ready to start immediately after receiving the exact requirements for the seed format and I/O structure.
-
5 days100 USD
967 34 0 5 days100 USDGood evening, I am ready to implement your task step by step, I will also consider how to create the unrank() function, if the chosen sorting algorithm allows it, then we will do it.
Thank you.
Current freelance projects in the category C & C++
Reverse engineering of console utilities for querying SSD controllers (Flash ID)1. Purpose of the work Extraction of the application programming interface (API) for interaction with SSD/NVMe controllers from the provided set of console utilities (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron, etc.). The result should be working code in C/C++… C & C++, Desktop Apps ∙ 3 days 22 hours back ∙ 5 proposals |
Development of a Minecraft Java Seed Map / Seed Viewer for the websiteDevelopment of Minecraft Java Seed Map / Seed Viewer for the websiteProject Description A browser-based tool Minecraft Java Seed Map / Seed Viewer needs to be developed, which will work on our website and allow the user to enter a seed from Minecraft Java Edition and view an… C & C++, HTML & CSS ∙ 4 days 5 hours back ∙ 14 proposals |
Comparative analysis of the effectiveness of custom software (v2.2-field) and reference software (Meshtastic v2.x)
22 USD
Comparative analysis of the effectiveness of custom software (v2.2-field) and reference software (Meshtastic v2.x) on the identical hardware platform (ESP32 + SX1268, 2W) based on the criteria of range, throughput, link stability, and power consumption. Conduct tests with… C & C++, C# ∙ 8 days 12 hours back ∙ 2 proposals |
Consultation and audit of the current project on Odoo 19 Community EditionWe are looking for an Odoo Developer — a solo developer with experience in Odoo 19 Community Edition, including using Claude Code. We need a specialist who has successfully implemented projects in Odoo and practical experience in development using Claude Code. Important: we only… C & C++, Javascript and Typescript ∙ 11 days 13 hours back ∙ 8 proposals |
Software development for Arduino (RF modules 3–7.5 GHz, automatic frequency scanning)It is necessary to develop a system on Arduino for the automatic search of active analog video signals and the automatic tuning of the transmitter to the detected frequency.It is planned to use three separate transceiver modules: 3000–4200 MHz; 4900–6000 MHz; 6100–7500… C & C++, Embedded Systems & Microcontrollers ∙ 12 days 14 hours back ∙ 5 proposals |