排序算法-冒泡排序-C

思路:

从前往后,比较每一对相邻的两个元素,如果逆序就交换顺序,第一次比较后最大元素放在最后,

第二次比较后第二大元素放在倒数第二位置,

重复上面步骤N-1次,直到所有元素已是正序。

时间复杂度:

平均,O(n^{2}) ; 最好,O(n) ;最坏,O(n^{2})

程序:

void bubble_sort(int array[],int array_size)
{
    int i,j,temp;
    for(i=0;i<array_size-1;i++)
    {   
        bool flag=true;
        for(j=0;j<array_size-1-i;j++)
        {   
            if(array[j]>array[j+1])
            {   
                temp=array[j];
                array[j]=array[j+1];
                array[j+1]=temp;
                flag=false;
            }   
        }   
        if(flag)
         break;
    }   

}
#include <stdio.h>
#include <stdbool.h>

int main()
{
    int i;  
    int array[]={100,96,88,75,63,52,41,36,28,19,6,0,-19,-105};
    int array_size=sizeof(array)/sizeof(int);
    bubble_sort(array,array_size);
    printf("Sorted array:\n");
    for(i=0;i<array_size;i++)
        printf(" %d, ",array[i]);
    printf("\n");
    return 0;
}  

参考:

https://www.runoob.com/w3cnote/ten-sorting-algorithm.html

https://www.runoob.com/w3cnote/ten-sorting-algorithm.html

https://github.com/hustcc/JS-Sorting-Algorithm

https://www.geeksforgeeks.org/bubble-sort/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值