C语言的冒泡排序

C语言的冒泡排序简单来说就是将一组数据的第一个元素与后一个(相邻)元素进行比较,根据具体的要求进行换位。


例题

将数组int arr[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}使用冒泡排序进行从小到大的排序 


提示:以下是本篇文章正文内容,下面案例可供参考

一、分析思考题目

题目是将整形数组arr使用冒泡排序法进行从小大的排序,首先就要理解冒泡排序是怎样的一个原理,

这道题的冒泡排序是将第一个元素 10 和他相邻的元素 9 进行比较发现10比9大,那就将10和9进行换位操作。数组就变成了:9,10,8,7,6,5,4,3,2,1。然后再将10和他的后一位相邻的元素进行比较,发现10比8大,在进行换位操作。数组就变成了9,8 ,10,7,6,5,4,3,2,1。以此类推直到最后变成了9,8,7,6,5,4,3,2,1,10以上这只是一次的排序。而这一共要进行9次排序,当9次排序过后,数组就已经完成了所有元素的比较,数组就实现了从小到大的排序。

你可以试着将这个一维数组看成二维数组去理解这道题。

int arr[10][10] ={

{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}

{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}

}

二、解题步骤

1.主函数代码

代码如下(示例):

int main()
{
    int arr[] = { 10,9,8,7,6,5,4,3,2,1 };
    //算出数组arr的长度
    int A_long = sizeof(arr) / sizeof(arr[0]);
    //调用自定义函数Arr_long
    Arr_long(arr, A_long);
    return 0;
}

 

2.自定义函数代码

代码如下(示例):

int Arr_long(int arr[], int A_long)
{
    int i = 0;
    //对数组arr进行遍历
    for (i = 0; i < A_long - 1; i++)
    {
        int j = 0;
        //对数组进行排序判断
        for (j = 0; j < A_long - 1 - i; j++)
        {
            if (arr[j] > arr[j + 1])
            {
                //对数组元素进行换位操作
                int tmp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tmp;
            }
        }
        int a = 0;
        //对排序结果进行输出
        for (a = 0; a < A_long; a++)
        {
            printf("%d ", arr[a]);
        }
        printf("\n");
    }
}

 

输出结果


总结

以上内容如有说的有误的地方请各位大佬指点。我会虚心学习改正,加强自身实力。

(当然这只是我自己的一些理解,如有造成误解请轻“点”)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值