自学内容网 自学内容网

利用c语言详细介绍下冒泡排序

    软件开发过程中,排序算法是常规且使用众多的方法之一,而冒泡算法又是排序算法中最常规且基本的算法。今天我们利用c语言,图文详细介绍下冒泡算法。

一、图文介绍

    我们输入一个数组,数组为【10,5,3,20,1]。

1.1,内循环一遍

    内循环第一遍,我们需要遍历整个数组,然后从第一个元素开始比对,最终把最大的元素移动到末尾:

1.2,内循环二遍 

    内循环第二遍,我们还是从第一个元素开始,但是我们之后只遍历到倒数第二个元素,因为最后一个元素已经是最大的了:

1.3,内循环三遍

  

1.4,内循环四遍 

    内循环4遍后,整个数组排序完成,最终结果如图:

二、算法实现

2.1,冒泡排序算法 

    我们用c语言写一个函数,函数里面实现具体算法:

int *  bubbleSort(int *arr,int len)
{
    int tmp;
    for(int i=0;i<len-1;i++)  //外循环
    {
        for(int j=0;j<len-i-1;j++) //内循环
        {
            if(arr[j]>arr[j+1])  //元素大小判断,如果前面元素大于后面,则完成数据交互
            {
                tmp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = tmp;
            }
        }
    }
    return arr;
}

2.2,功能测试

int main() {

    int a[]={10,5,3,20,1};
    int *p = bubbleSort(a,5);
    printf("the array a after sort is ");
    for(int i=0;i<5;i++){
        printf("%d ", *(p++));
    }

}


原文地址:https://blog.csdn.net/tpc4289/article/details/143863588

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!