打赏

冒泡排序

每趟排序都是把值最小的数移至前面,依次排序。

  • 空间复杂度O(1)

最好情况下,初始序列为”正序“序列,只需一趟排序,n-1次比较,且不移动记录,时间复杂度为O(n)。

最坏情况下,初始序列为逆序,则需要进行n-1趟排序,需要进行(n(n-1))/2次比较,并做等数量的记录移动,时间复杂度O(n2)。

void BubbleSort(int A[], int n){
    for(int i=0; i<n-1; i++){
        bool flag = false;
        for(int j=n-1; j>i; j--){    //换数不换下标
            if(A[j-1]>A[j]){
                swap(A[j-1],A[j]);    //交换位置
                flag = true;
            }
        }
        if(flag == false)
            return;
    }
}

void swap(int a; int b){
    int temp = a;
    a = b;
    b = temp;
}

 

posted @ 2022-02-03 19:19  不像话  阅读(22)  评论(0编辑  收藏  举报