sorting-visualization
所属分类:数学计算
开发工具:Rust
文件大小:0KB
下载次数:0
上传日期:2021-11-27 15:48:29
上 传 者:
sh-1993
说明: 一个Rust程序,用于可视化使用Piston进行图形的排序算法。灵感来自[https:github.com Hopson97 Sort-Algorithm-...](https:github.com Hopson 97 Sort Algorith Visualiser),
(A Rust program for visualizing sorting algorithms which uses Piston for graphics. Inspired by https://github.com/Hopson97/Sort-Algorithm-Visualiser)
文件列表:
Cargo.lock (44005, 2021-04-05)
Cargo.toml (675, 2021-04-05)
LICENSE (1072, 2021-04-05)
assets/ (0, 2021-04-05)
assets/Menlo-Regular.ttf (475160, 2021-04-05)
docs.sh (211, 2021-04-05)
rustfmt.toml (30, 2021-04-05)
src/ (0, 2021-04-05)
src/algorithms/ (0, 2021-04-05)
src/algorithms/all.rs (480, 2021-04-05)
src/algorithms/bubble.rs (710, 2021-04-05)
src/algorithms/cocktail.rs (1291, 2021-04-05)
src/algorithms/cycle.rs (1670, 2021-04-05)
src/algorithms/gnome.rs (616, 2021-04-05)
src/algorithms/heap.rs (1058, 2021-04-05)
src/algorithms/insertion.rs (723, 2021-04-05)
src/algorithms/merge.rs (1961, 2021-04-05)
src/algorithms/mod.rs (1568, 2021-04-05)
src/algorithms/quicksort.rs (1308, 2021-04-05)
src/algorithms/selection.rs (849, 2021-04-05)
src/algorithms/shellsort.rs (808, 2021-04-05)
src/app.rs (6436, 2021-04-05)
src/array.rs (2800, 2021-04-05)
src/cli.rs (4224, 2021-04-05)
src/main.rs (3080, 2021-04-05)
src/state.rs (3066, 2021-04-05)
# sorting-visualization
[![CI Status](https://github.com/dmitmel/sorting-visualization/workflows/CI/badge.svg)](https://github.com/dmitmel/sorting-visualization/actions?query=workflow:CI)
A [Rust](https://www.rust-lang.org/) program for visualizing sorting algorithms which uses [Piston](http://www.piston.rs/) for graphics. Inspired by [**Hopson97/Sort-Algorithm-Visualiser**](https://github.com/Hopson97/Sort-Algorithm-Visualiser).
[![Demo](https://i.imgur.com/jyPDiWX.gif)](https://gist.github.com/dmitmel/f8664421b547577065912c3246f4c1e9)
## Setup
```bash
git clone https://github.com/dmitmel/sorting-visualization
cd sorting-visualization
cargo build --release
```
## Usage
```bash
# see 'Features' section for the list of supported algorithms and their IDs
# and use the --help flag to print all available animation options
cargo run
# list all available algorithms
cargo run -- --list
```
## Features
- CLI
- Supports different algorithms (IDs are in brackets):
- [Bubble sort](https://en.wikipedia.org/wiki/Bubble_sort) \[`bubble`\]
- [Cocktail sort](https://en.wikipedia.org/wiki/Cocktail_shaker_sort) \[`cocktail`\]
- [Cycle sort](https://en.wikipedia.org/wiki/Cycle_sort) \[`cycle`\]
- [Gnome sort](https://en.wikipedia.org/wiki/Gnome_sort) \[`gnome`\]
- [Heap sort](https://en.wikipedia.org/wiki/Heapsort) \[`heap`\]
- [Insertion sort](https://en.wikipedia.org/wiki/Insertion_sort) \[`insertion`\]
- [Merge sort](https://en.wikipedia.org/wiki/Merge_sort) \[`merge`\]
- [Quicksort](https://en.wikipedia.org/wiki/Quicksort) \[`quicksort`\]
- [Selection sort](https://en.wikipedia.org/wiki/Selection_sort) \[`selection`\]
- [Shellsort](https://en.wikipedia.org/wiki/Shellsort) \[`shellsort`\]
- Animation controls:
- Space - pause/resume
- ↑ - 2x faster
- ↓ - 2x slower
- Easy-to-use algorithm API
- Algorithms can highlight important array elements
- Code is well-documented
## Building docs
```bash
./docs.sh
```
**Nightly Rust is required for building docs** because it has [infra doc link resolution](https://github.com/rust-lang/rust/issues/43466) which is currently unstable.
## TODO
1. User-friendly GUI
2. More algorithms
3. Sound?
## Contributing
[**Documentation**](https://dmitmel.github.io/sorting-visualization)
PRs are appreciated!
## License
[MIT](https://github.com/dmitmel/sorting-visualization/blob/master/LICENSE) [Dmytro Meleshko](https://github.com/dmitmel)
近期下载者:
相关文件:
收藏者: