冒泡排序法是如何排序的???

 我来答
太平洋科技
优质机构答主

2023-01-06 · 百度认证:广东太平洋互联网信息服务有限公司官方账号,优质数码...
太平洋科技
太平洋电脑网通过分析、评测生活及工作中各类消费品,让消费者客观了解产品性能及安全状况,帮助用户做出理性购买选择。同时科普各领域产品知识,解答用户选购及使用中所遇问题。
向TA提问
展开全部

它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

冒泡排序算法的原理如下:

比较相邻的元素。如果第一个比第二个大,就交换他们两个。

对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

针对所有的元素重复以上的步骤,除了最后一个。

持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

扩展资料:

举例:C语言

#include<stdio.h>

#define ARR_LEN 255/*数组长度上限*/

#define elemType int/*元素类型*/

/*冒泡排序*/

/*1.从当前元素起,向后依次比较每一对相邻元素,若逆序则交换*/

/*2.对所有元素均重复以上步骤,直至最后一个元素*/

/*elemType arr[]:排序目标数组;int len:元素个数*/

void bubbleSort(elemType arr[],int len){

elemType temp;

int i,j;

for(i=0;i<len-1;i++)/*外循环为排序趟数,len个数进行len-1趟*/

for(j=0;j<len-1-i;j++){/*内循环为每趟比较的次数,第i趟比较len-i次*/

if(arr[j]>arr[j+1]){/*相邻元素比较,若逆序则交换(升序为左大于右,降序反之)*/

temp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=temp;

}

}

}

int main(void){

elemType arr[ARR_LEN]={3,5,1,-7,4,9,-6,8,10,4};

int len=10;

int i;

bubbleSort(arr,len);

for(i=0;i<len;i++)

printf("%d\t",arr<i>);

putchar('\n');

return 0;

}

参考资料:

百度百科——冒泡排序

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式