选择排序

2017-05-08  本文已影响6人  muyang_js的简书

前言

 * 简单选择排序(直接选择排序)
 * 基本思想:数组分成有序区和无序区,初始时整个数组都是无序区,
 * 然后每次从无序区选一个最小的元素直接放到有序区的最后,重复这样的操作,
 * 直到整个数组变成有序区。
    func selectSort(_ arr: [Int]) ->[Int] {
        
        var arr = arr
        
        var min = 0
        
        // 只需要n-1趟
        for i in 0 ..< arr.count - 1 {
            min = i
            // 从第n+1趟起始找到末尾
            for j in i + 1 ..< arr.count {
                
                // 找到比min位置更小的,就更新这一趟所找到的最小值的位置
                if arr[j] < arr[min] {
                    min = j
                }
                print("i=\(i)--- j= \(j) --- \(arr)")
            }
            
            // 如果min与i不相等,说明有比i位置更小的,所以需要交换
            if min != i {
                let temp = arr[i]
                arr[i] = arr[min]
                arr[min] = temp
            }
        }
        
        return arr
    }

引用

屏幕快照 2017-05-08 下午5.59.48.png

打印结果

屏幕快照 2017-05-08 下午6.02.13.png
上一篇 下一篇

猜你喜欢

热点阅读