简介

冒泡排序是对数组nums每次遍历过程中,如果nums[i + 1] < nums[i],则进行交换,每次遍历结束,都有一个最大元素移动到数组后面,n次遍历后,排序完成。

效率

  • 时间复杂度:冒泡排序 - 图1
  • 空间复杂度:冒泡排序 - 图2
  • 稳定性:稳定

    实现

    1. pub fn bubble_sort(mut nums: Vec<i32>) -> Vec<i32> {
    2. for i in 0..nums.len() {
    3. for j in 1..nums.len() - i {
    4. if nums[j] < nums[j - 1] {
    5. nums.swap(j, j - 1);
    6. }
    7. }
    8. }
    9. nums
    10. }