网站首页 > 文章中心 > 其它

C语言用函数求冒泡排序

作者:小编 更新时间:2023-09-29 14:32:55 浏览量:401人看过

C语言冒泡排序法是怎么排序的?

C语言冒泡排序法的排序规则:

将被排序的记录数组R[1..n]垂直排列,每个记录R看作是重量为R.key的气泡.根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮".如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止.

初始 R[1..n]为无序区.

第一趟扫描 从无序区底部向上依次比较相邻的两个气泡的重量,若发现轻者在下、重者在上,则交换二者的位置.

c语言冒泡排序的编程为:

#include stdio.h

void sort(int *a,int len)

{int i=0;

int j;

int t;

for(i=0;ilen-1;i++)[1]

{

for(j=0;jlen-i-1;j++)

if(a[j]a[j+1])

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

int main(int argc, char *argv[])

int a[10]={

};

int i=0;

sort(a,10);

for(i=0;i10;i++)

printf("%d ",a[i]);

return 0;

C语言课程作业,通过定义函数实现冒泡排序过程.

void sortMaopao(int *arr,int n)

int i,j,tmp;

if(n100)

return ;

for(i=0;in-1;i++)

for(j=i+1;jn;j++)

if(*(arr+i)*(arr+j))

tmp=*(arr+i);

*(arr+i)=*(arr+j);

*(arr+j)=tmp;

这个函数可以帮你实现由大到小排序,如果由小到大的话只需把if(*(arr+i)*(arr+j))这一句里面的 改成 就行了,输出的话可以在主函数调用之后再打印输出就行.

C语言:编写函数用冒泡排序法对数组中的数据进行从小到大的排序.

int?i,j,temp;

for(j=0;jn-1-i;j++)

temp=a[j];

a[j+1]=temp;

之间写这个

C语言冒泡排序法是什么?

冒泡排序法,是C语言常用的排序算法之一,意思是对一组数字进行从大到小或者从小到大排序的一种算法.

具体方法是:

相邻数值两两交换.从第一个数值开始,如果相邻两个数的排列顺序与我们的期望不同,则将两个数的位置进行交换(对调);如果其与我们的期望一致,则不用交换.重复这样的过程,一直到最后没有数值需要交换,则排序完成.

C语言常见的排序算法:

①.、冒泡排序

基本思想:比较相邻的两个数,如果前者比后者大,则进行交换.每一轮排序结束,选出一个未排序中最大的数放到数组后面.

基本思想:选取一个基准元素,通常为数组最后一个元素(或者第一个元素).从前向后遍历数组,当遇到小于基准元素的元素时,把它和左边第一个大于基准元素的元素进行交换.在利用分治策略从已经分好的两组中分别进行以上步骤,直到排序完成.

基本思想:和交换排序不同的是它不用进行交换操作,而是用一个临时变量存储当前值.当前面的元素比后面大时,先把后面的元素存入临时变量,前面元素的值放到后面元素位置,再到最后把其值插入到合适的数组位置.

基本思想:依次选出数组最小的数放到数组的前面.首先从数组的第二个元素开始往后遍历,找出最小的数放到第一个位置.再从剩下数组中找出最小的数放到第二个位置.以此类推,直到数组有序.

以上内容参考? ?百度百科-排序算法、百度百科-c语言冒泡排序

C语言冒泡排序.

#includestdio.h

void main()

int a[10];

int i,j,t;

printf("input 10 numbers:\n");

scanf("%d",a[i]);

if(a[i]a[i+1]) /*相邻两个数比较,想降序只要改成a[i]a[i+1]*/

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

printf("the sorted numbers:\n");

printf(" %d",a[i]);

扩展资料:

冒泡排序算法的运作

①.、比较相邻的元素.如果第一个比第二个大(小),就交换他们两个.

简单的表示

void swap(int *i, int *j)

int temp = *i;

*i = *j;

*j = temp;

int main()

int i,j;

for (i = 0; i 10; i++)

if (a[j] a[j-1])

swap(a[j], a[j-1]);

printf("%d\n", a[i]);

急需一个用C语言函数写的冒泡排序法,最好是可以排数字也可以排字母

#includestdlib.h

void mao_pao(int *a,int n)

int i,j,temp,flag;

for(i=0;in-1flag;++i)

flag=0;

for(j=0;jn-1;++j)

flag=1;

int *a,i,n;

a=(int *)malloc(100);

if(NULL==a)

printf("allocation failture\n");

exit(1);

printf("请输入你要排序的元素的个数\n");

scanf("%d",n);

printf("现在开始输入%d个元素\n",n);

for(i=0;i!=n;++i)

mao_pao(a,n);

printf("排序后为:\n");

printf("\n");

free(a);

这是排数字的,要排字母的话,只需把a的类型改一下,和输出输入的格式改一下就ok了

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章