Ushbu bo'limda sizlar bilan tartiblash algoritmlarini barcha turlarini ko'rib chiqamiz. Ularni qay o'rinda, qanday ishlatishni va qanday qilib Rust dasturlash tilida kodga o'girishni misollar va qiziqarli yo'llar bilan ko'rib chiqamiz.
Tartibalsh Algoritmlar bu quyidagilar:
- Bubble sort
- Selection sort
- Insertion sort
- Merge sort
- Quick sort
- Heap sort
- Radix sort
- Shell sort
- Couting sort
- Bucket sort
Ammo biz bularni barchasini o'rganmasakda sizlar bilan eng keraklilarini ko'rib ketamiz.
Bubble Sort - bu eng oddiy sorting(tartiblash) algoritmi bo'lib, agar ular noto'g'ri tartibda bo'lsa, adjacent elementlarni qayta-qayta almashtirish orqali ishlaydi. Ushbu algoritm katta ma'lumotlar to'plamlari uchun mos emas, chunki uning average va worst-case time(eng yomon vaqt murakkabligi) ancha yuqori.
Algoritmni qanday ishlashini pastdagi misol orqali ko'rishingiz mumkin:
Ko'rib turibsizki uning ishlashi juda sodda. Keling endi uni Rustda qanday qilib kod holatiga o'tkazishni ko'rib chiqamiz.
fn main() {
let mut arr = [4, 7, 9, 1, 2, 3, 0, 8, 5, 6, -3, 234, -23, 11];
println!("Tartibisz ro'yxat: {:?}", arr);
buble_sort(&mut arr);
println!("Tartiblangan ro'yxat: {:?}", arr);
}
pub fn buble_sort(arr: &mut [i32]) {
let len = arr.len();
for i in 0..len {
for j in 0..len-i-1 {
if arr[j] > arr[j+1] {
arr.swap(j, j + 1);
}
}
}
}
Computer scienceda selection sort joyida taqqoslash algoritmi hisoblanadi. U O(n2) time complexity(vaqt murakkabligi)ga ega, bu esa uni katta roʻyxatlarda samarasiz qiladi va odatda similar insertion sortdan koʻra yomonroq ishlaydi. Selection sort o'zining soddaligi bilan ajralib turadi va muayyan vaziyatlarda, ayniqsa yordamchi xotira cheklangan bo'lsa, murakkabroq algoritmlarga nisbatan ishlash afzalliklariga ega.
// Bu yerda rust implementation bo'ladi!
...
...
...