Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Javascript Algorithms | 170,419 | 2 | 5 days ago | 4 | June 02, 2018 | 311 | mit | JavaScript | ||
📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings | ||||||||||
Python | 159,187 | 13 hours ago | 176 | mit | Python | |||||
All Algorithms implemented in Python | ||||||||||
Java | 52,108 | 19 hours ago | 4 | mit | Java | |||||
All Algorithms implemented in Java | ||||||||||
Javascript | 26,623 | 6 days ago | 39 | gpl-3.0 | JavaScript | |||||
Algorithms and Data Structures implemented in JavaScript for beginners, following best practices. | ||||||||||
C Plus Plus | 24,534 | 12 hours ago | 33 | mit | C++ | |||||
Collection of various algorithms in mathematics, machine learning, computer science and physics implemented in C++ for educational purposes. | ||||||||||
Algorithms | 22,512 | 14 | 1 | 25 days ago | 5 | October 04, 2020 | 200 | mit | Python | |
Minimal examples of data structures and algorithms in Python | ||||||||||
C | 16,291 | a day ago | 19 | gpl-3.0 | C | |||||
Collection of various algorithms in mathematics, machine learning, computer science, physics, etc implemented in C for educational purposes. | ||||||||||
Tech Interview For Developer | 10,689 | 9 days ago | 2 | mit | Java | |||||
👶🏻 신입 개발자 전공 지식 & 기술 면접 백과사전 📖 | ||||||||||
Algoxy | 5,709 | 19 hours ago | TeX | |||||||
Book of Elementary Algorithms and Data structures | ||||||||||
Algorithms | 4,760 | 3 months ago | 105 | mit | C++ | |||||
Algorithms & Data structures in C++. |
Hayate-Shiki is an improved merge sort algorithm with the goal of "faster than quick sort".
It has the following features.
The external area is regarded as a 2N continuous band.
4 5 1 2 7 6 3 8|Input column
. . . . . . . .|External area
->Asc Dsc<-|Actually
|4 5 1 2 7 6 3 8|Input column
. . . . . . . . . . . . . . . .|External area
Dsc<-|->Asc |2N continuous band
Put new values (maximum and minimum) in ascending order column.
|. 5 1 2 7 6 3 8
. . . . . . . . 4 . . . . . . .
The next value is (maximum <= value), place it above the ascending order column and update the maximum.
|. . 1 2 7 6 3 8
. . . . . . . . 4 5 . . . . . .
The next value is (value < minimum), place it below the descending column and update the minimum.
|. . . 2 7 6 3 8
. . . . . . . 1 4 5 . . . . . .
The next value is (minimum <= value < maximum), place new values (maximum and minimum) in ascending order column,
and let the value group arranged so far be Part.(Part: 145 completed)
|. . . . 7 6 3 8
. . . . . . .|1 4 5|2 . . . . .
The next value is (maximum <= value), place it above the ascending order column and update the maximum.
|. . . . . 6 3 8
. . . . . . .|1 4 5|2 7 . . . .
The next value is (minimum <= value < maximum), place new values (maximum and minimum) in ascending order column,
and let the value group arranged so far be Part.(Part: 27 completed)
|. . . . . . 3 8
. . . . . . .|1 4 5|2 7|6 . . .
The next value is (value < minimum), place it below the descending column and update the minimum.
|. . . . . . . 8
. . . . . . 3|1 4 5|2 7|6 . . .
The next value is (maximum <= value), place it above the ascending order column and update the maximum.(Part: 368 completed)
|. . . . . . . .
. . . . . .|3|1 4 5|2 7|6 8|. .
External area result.
4 5|2 7|6 8|. . Ascending column arrangement
. . . . . .|3|1 Descending column arrangement
4 5|2 7|6 8|3|1 Actual arrangement
Merge generated Parts.
145 27 368
12457 368
12345678
Sort complete.
We will make additional improvements to the basic algorithm.
The following environment has been verified.
Microsoft(R) C/C++ Optimizing Compiler Version 19.16.27030.1 for x64
cl Main.cpp -std:c++14 -Ox -EHsc -Fe:TestMsvc.exe
TestMsvc.exe
clang version 8.0.0 (tags/RELEASE_800/final)
Target: x86_64-w64-windows-gnu
clang++ Main.cpp -std=c++14 -O3 -o TestClang++.exe
TestClang++.exe
gcc version 8.3.0 (Rev2, Built by MSYS2 project)
Target: x86_64-w64-mingw32
g++ Main.cpp -std=c++14 -O3 -o TestG++.exe
TestG++.exe
Sorts float values generated from the same seed.
The unit is seconds, the lower the number, the faster.
The following all sorted the array [100,000,000] of float value.
The unit is seconds, the lower the number, the faster.
How was it?
Hayate-Shiki is a stable sort, but has strong characteristics to random numbers.
In the conditional benchmark, it was found that the influence of the optimization characteristic of the compiler, rather than the algorithm characteristic, becomes strong, so that it can hardly be a judgment material.
Does it come the day when merge sort wins quick sort?
The sort algorithm is still romantic.