Rust实现冒泡排序算法(Bubble Sort)

本文将使用Rust语言实现冒泡排序算法;

冒泡排序算法原理

该算法通过重复的遍历要排序的元素,依次比较两个相邻的元素,如果顺序错误则进行交换;通过重复的进行遍历直到没有相邻的元素需要交换,则表示排序已经完成;

Rust实现冒泡排序

fn bubble_sort<T: Ord>(arr: &mut [T]) {
    for i in 0..arr.len() {
        for j in 0..arr.len() - 1 - i {
            if arr[j] > arr[j + 1] {
                arr.swap(j, j + 1);
            }
        }
    }
}

fn main(){
    let mut ve1 = vec![5, -3, 0, 3, 1, 2, -1, 8, 7];
    println!("排序前: {:?}",ve1);
    bubble_sort(&mut ve1);
    println!("排序后:{:?}",ve1);
}

程序运行效果

排序前: [5, -3, 0, 3, 1, 2, -1, 8, 7]
排序后:[-3, -1, 0, 1, 2, 3, 5, 7, 8]

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/rust-bubble-sort.html

分类: 计算机技术
推荐阅读:
Rust函数返回多个值 在Rust中,函数可以返回一个元组,这个元组可以包含多个值;
QtSpim: Attempt to execute non-instruction at 0x00400030 错误解决方法 使用QtSpim运行MIPS32汇编代码时提示Attempt to execute non-instruction at 0x00400030 错误表示你的程序没有正确退出;
Rust:if this is intentional, prefix it with an underscore解决方法 编译Rust程序时提示:if this is intentional, prefix it with an underscore: `_x`,这表明存在一个未使用的变量 x,你可以将其删除或在变量名前添加一个下划线前缀;
打开任务管理的一瞬间CPU飙到很高,这种现象正常吗? Windows系统上的任务管理器(进程名Taskmgr.exe)用于实时显示计算机当前有关于性能、进程、服务等信息;细心的朋友会发现,在打开任务管理器的一瞬间,CPU使用率瞬间飙升,基本上会达到100%,随后也会很快回落,那这种现象正常么?
Python next()函数 next() 是 Python 的内置函数之一,用于获取迭代器中的下一个元素。
Go语言获取命令行参数 本文将在Go语言中使用标准库 os 获取命令行参数;Go语言的 os 库中有一个 Args 属性,可通过它读取程序运行时的命令行参数;