Swift -冒泡排序

demo下载地址

原理解析

不断比较相邻的两个元素,如果它们的顺序不符合要求就互相调换。

问题描述:

把数组 [61,5,33,44,22] 进行从小到大进行排序

解题步骤

步骤如下:

  • 比较相邻的元素。如果第一个比第二个大,就交换他们两个,直到把最大的元素放到数组尾部。
  • 遍历长度减一,对剩下的元素从头重复以上的步骤。
  • 直到没有任何一对数字需要比较时完成。

代码:

//冒泡排序
    func  p_bubbleSort(array:inout [Int]) -> [Int] {
        
        guard array.count > 1 else {
            return array
        }
        for i in 0..<(array.count - 1) {//外层循环为 数组长度 - 1
            
            for j in 0..<(array.count - 1 - i) {// 内层循环为 外层循环 - i
                
                if array[j] > array[j + 1] {// 冒泡操作
                    
                    array.swapAt(j, j + 1)
                    
                }
            
            }
        
        }
        return array
    }
    

测试:

 @objc func p_bubbleSort() {
        var list = [61,5,33,44,22]
        let result = p_bubbleSort(array: &list)
        print(result)
    }

结果:

[5, 22, 33, 44, 61]
发布了128 篇原创文章 · 获赞 106 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/Z1591090/article/details/102665800