#sorting #numbers #node #order #pair #algorithm #double

double_sort

This is a fast and simple sorting algorithm which groups numbers into pairs and orders them onwards as nodes

3 stable releases

1.2.0 Aug 30, 2022
1.1.0 Aug 27, 2022
1.0.0 Aug 25, 2022

#1972 in Algorithms

MIT license

13KB
242 lines

Double Sort

This is a short and concise sorting algorithm written in Rust as a learning project.

It works by grabbing numbers from a vector in pairs of two, putting them into a structure called Nodes, comparing both numbers in it and placing the smallest one to the left and the biggest to the right. A binary heap is used to place the Nodes in ascending order, ordering by their leftmost number and then after that the program loops by checking neighbouring numbers and swapping them if needed. All of this is still on the heap so the order of the Nodes will still be consistent. The vector is always sorted after n/2 - 1 times (Rounded up for odd amounts)

Visualization (10.000 numbers)

https://user-images.githubusercontent.com/54857786/187537791-f1bb2df9-d723-4ba5-9bf8-82e73161cc18.mp4

Visualization was done with: sorting-visualization

Diagram

double_sort

No runtime deps