美文网首页
BubbleSort最优实现

BubbleSort最优实现

作者: krislyy_ | 来源:发表于2018-11-14 12:50 被阅读0次

冒泡排序

//
// Created by krislyy on 2018/11/6.
//

#ifndef ALGORITHM_BUBBLESORT_H
#define ALGORITHM_BUBBLESORT_H

#include "utility.h"

namespace Algorithm {
    /*
     *起泡排序算法的不变性和单调性可分别概括为:经过k趟扫描交换后,最大的前k
     *个元素必然就位;经过k趟扫描交换之后,带求解问题的有效规模将缩减至n-k.
     *时间复杂度为O(n^2)
     */
    template <class T>
    static void BubbleSort_A(T A[], int n) {
        bool sorted = false; //借助bool元素可以及时退出
        while (!sorted) {
            sorted = true;
            for (int i = 1; i < n; ++i) {   //循环一次后使最大的元素冒泡出来
                if (A[i-1] > A[i]) {        //交换条件
                    swap(A[i-1], A[i]);
                    sorted = false;
                }
            }
            n--;
        }
    }
}

#endif //ALGORITHM_BUBBLESORT_H

相关文章

  • BubbleSort最优实现

    冒泡排序

  • Golang 排序算法

    基本排序算法的Golang实现 BubbleSort InsertSort SelectSort

  • js常用的排序算法

    1.冒泡排序: 最简单的排序算法,代码实现:function bubbleSort(arr) {var len ...

  • python实现冒泡排序(BubbleSort)

    python实现【冒泡排序】 算法原理介绍 冒泡排序是一种简单的排序算法。它的基本原理思想是重复地走访过要排序的数...

  • bubbleSort

    时间复杂度 O(n^2),最好为O(n)空间复杂度O(1)

  • BubbleSort

    思想:相邻元素两两排序,大值排后,直至第一轮结束排序前 第一次交换 Java实现其思想

  • BubbleSort

    冒泡排序每次比较两个相邻的元素,如果他们的顺序错误就把他们交换过来。

  • BubbleSort

    发自简书将最小的项放在数组最开始(下标为0)最大的项放在数组的最后,外层for循环out从数组最后开始out等于e...

  • 基本的排序算法总结:

    1、冒泡排序(两两比较相邻的元素,交换位置) 实现: private static void BubbleSort...

  • 算法bubbleSort()

    冒泡算法是学习计算机必须接触的最普通的排序算法,冒泡排序的特点是调整相邻两个元素的位置,每进行一次内循环,最可以将...

网友评论

      本文标题:BubbleSort最优实现

      本文链接:https://www.haomeiwen.com/subject/goodfqtx.html