排序算法-冒泡、选择排序

2021-02-12 11:18

阅读:450

标签:比较   lang   没有   code   block   UNC   稳定性   个数   eve   

冒泡排序(升序为例)

思路:
1. 从头开始比较每一对相临的元素,其后者比前者大则交换,直到一轮比较结束
2. 排除1中找到最大的元素,重复1的步骤

class BubbleSort {
    
    var array = [5, 7, 2, 8, 9, 4, 7, 3, 2]
    
    // 基本版本
    func sort() {
        for end in (1 ..

* 最坏、平均时间复杂度:O(n^2),最好时间复杂度:O(n)

* 空间复杂度: O(1)

* 稳定性: 稳定

选择排序(升序为例)

思路:
1. 选择从第一个到倒数第二个与最后一个进行比较,大则交换放到最后
2. 重复第一步,与倒数第二个数比较

class SelectionSort {
    var array = [5, 7, 2, 8, 9, 4, 7, 3, 2]
    
    func sort() {
        for end in (1 ..

* 最好、最坏、平均时间复杂度:O(n^2)

* 空间复杂度: O(1)

* 稳定性: 不稳定

排序算法-冒泡、选择排序

标签:比较   lang   没有   code   block   UNC   稳定性   个数   eve   

原文地址:https://www.cnblogs.com/tzsh1007/p/12731344.html


评论


亲,登录后才可以留言!