利用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)!