Skip to main content

rust_algorithms/
lib.rs

1//! # rust-algorithms
2//!
3//! Data Structures & Algorithms (DSA) darsligining **ishlaydigan kod** qismi.
4//!
5//! Har bir modul bitta mavzuga to'g'ri keladi va repozitoriydagi
6//! raqamlangan papkalardagi darslik (`.md`) fayllari bilan juftlashgan:
7//!
8//! | Modul | Darslik |
9//! |---|---|
10//! | [`numbers`] | `02-numbers/` |
11//! | [`searching`] | `03-searching/` |
12//! | [`sorting`] | `04-sorting/` |
13//! | [`data_structures`] | `05-data-structures/` |
14//! | [`linked_list`] | `06-linked-list/` |
15//! | [`tree`] | `07-trees/` |
16//! | [`graph`] | `08-graphs/` |
17//! | [`greedy`] | `09-greedy/` |
18//! | [`dp`] | `10-dynamic-programming/` |
19//! | [`other`] | `11-other-algorithms/` |
20//!
21//! ## Tez boshlash
22//!
23//! ```
24//! use rust_algorithms::searching::binary_search;
25//! use rust_algorithms::sorting::quick_sort;
26//!
27//! let mut v = vec![5, 3, 9, 1, 7];
28//! quick_sort(&mut v);
29//! assert_eq!(v, [1, 3, 5, 7, 9]);
30//! assert_eq!(binary_search(&v, &7), Some(3));
31//! ```
32//!
33//! ## Kodni o'qish tartibi
34//!
35//! Har bir funksiya ustida quyidagi izohlar bor:
36//! - **G'oya** — algoritm nima qilyapti (bir jumlada);
37//! - **Time / Space** — murakkablik;
38//! - **Misol** — `cargo test` bilan tekshiriladigan ishlaydigan namuna.
39
40#![forbid(unsafe_code)]
41#![warn(missing_docs)]
42// O'quv kodida `for i in 0..n` ko'pincha iteratordan ko'ra tushunarliroq —
43// u algoritmning matematik yozuviga (masalan, Floyd-Warshall) to'g'ridan-to'g'ri mos keladi.
44#![allow(clippy::needless_range_loop)]
45
46pub mod data_structures;
47pub mod dp;
48pub mod graph;
49pub mod greedy;
50pub mod linked_list;
51pub mod numbers;
52pub mod other;
53pub mod searching;
54pub mod sorting;
55pub mod tree;
56pub mod util;