冒泡排序-----数据结构

冒泡排序

冒泡排序是算法排序中最基础的排序之一。

排序思路:

方法一:从后向前进行遍历,并进行相邻元素的比较,将较小元素放在较大元素之前,继续进行比较。每一轮比较结束后,都是 将基表数组中最小的元素,放置于本轮比较数组的最前面。

方法二:从前向后进行比较,并进行相邻元素的比较,将较大元素放在较小元素的后面,继续进行比较。每一轮比较结束后,都是将比较数组中最大的元素,放置于本轮比较数组的最后面。

本次,将于大家分享第一种方法的实现:


冒泡函数程序代码:

//函数的实现
void BubbleSort(int array[],size_t size){
    if(size <=1){
        return;
    }
    //数组元素数大于1
    size_t bount = 0;//边界
    for(;bount<size;++bount){
        //从后往前遍历,将关键字小的放置在关键字大的前面
        //关键字相等时,相对位置不发生改变
        size_t cur = size - 1;
        for(;cur>bount;--cur){
            if(array[cur] < array[cur-1]){
                swap(&array[cur],&array[cur-1]);
            }
        }//二次遍历结束
    }//一次遍历结束
    return;
}

交换函数程序代码:

//交换函数
void swap(int *a,int *b){
    int tmp =*a;
    *a = *b;
    *b = tmp;
    return;
}

测试用例代码:

//主函数
int main(){
    int arr[] = {1,2,6,3};
    int i =0;
    printf("排序前:");
    for(;i<sizeof(arr)/sizeof(arr[0]);++i){
        printf("%d ",arr[i]);
    }
    printf("\n");
    BubbleSort(arr,sizeof(arr)/sizeof(arr[0]));
    i =0;
    printf("排序前:");
    for(;i<sizeof(arr)/sizeof(arr[0]);++i){
        printf("%d ",arr[i]);
    }
    printf("\n");
    return 0;
}

程序检测结果显示:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值