Before diving into any of the data structures, readers should be reminded of two fundamental laws in software architecture:
1.Everything is a trade-ff
2."Why is more important than the how"
So, readers face the nuances and reality of these data structures from the beginning. These two laws are coined by two thought leaders in software architecture: Mark Richards and Neal Ford. They have explained these two laws in various conference talks and books. For example, here you can read about these two laws here:
https://www.infoq.com/podcasts/software-architecture-hard-parts/
Also, here is a book for reference:
https://a.co/d/fKOodW9
Co-authored-by: Oleksii Trekhleb <3000285+trekhleb@users.noreply.github.com>
* Add the link to the Weighted Random algorithm to the main README.
* Add Weighted Random implementation and tests.
* Add Weighted Random README.
* Add Weighted Random README.
* Add Weighted Random README.
* Add "Binary representation of floating point numbers" section.
* Adding a half-precision explanatory picture.
* Binary representation of the floating-point numbers.
* add the DS link
* Finish translating math
* add Arabic version of the README FILE
* add Arabic version of the README FILE
* add the arabic readme file link to main readme file
* add the arabic readme file link to main readme file
* add the arabic readme file link to main readme file
Co-authored-by: Oleksii Trekhleb <trehleb@gmail.com>
* Add divide and conquer example: best time to buy and sell stocks.
* Add divide and conquer example: best time to buy and sell stocks.
* Add dynamic programming version.
* Add rail fence cipher encoder & decoder
* Add functions to encode & decode strings using the rail fence cipher method
* Add unit tests covering empty strings, pair & odd number of characters in the input string, n=3 & n=4
* Add a README.md for the algorithm
* Update root README.md to link to the new algorithm
* Rename the CI workflow file.
Co-authored-by: Oleksii Trekhleb <trehleb@gmail.com>