温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C语言中怎么实现冒泡排序法

发布时间:2021-08-07 14:35:43 来源:亿速云 阅读:117 作者:Leah 栏目:编程语言

C语言中怎么实现冒泡排序法,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

数字的排序:

#include <stdio.h> #define SIZE 10int main(){  int a[SIZE]={12 ,43,9,13,67,98,101,89,3,35};//十个数的无序数列  int i,j,t;  printf("此程序使用冒泡排序法排列无序数列!\n");  //冒泡排序  for(i=0;i<10-1;i++)//n个数的数列总共扫描n-1次  {    for(j=0;j<10-i-1;j++)//每一趟扫描到a[n-i-2]与a[n-i-1]比较为止结束    {      if(a[j]>a[j+1])//后一位数比前一位数小的话,就交换两个数的位置(升序)      {        t=a[j+1];        a[j+1]=a[j];        a[j]=t;      }    }  }   printf("排列好的数列是:\n");  //输出排列好得吃数列  for(i=0;i<10;i++)  {     printf("%d ",a[i]);  }  return 0;}

字符排序:

#include <stdio.h> #define SIZE 10int main(){  char a[SIZE]={'i','l','o','v','e','y','o','u','y','x'};//十个数的无序数列  int i,j;  char t;  printf("此程序使用冒泡排序法排列无序数列!\n");  //冒泡排序  for(i=0;i<10-1;i++)//n个数的数列总共扫描n-1次  {    for(j=0;j<10-i-1;j++)//每一趟扫描到a[n-i-2]与a[n-i-1]比较为止结束    {      if(a[j]>a[j+1])//后一位数比前一位数小的话,就交换两个数的位置(升序)      {        t=a[j+1];        a[j+1]=a[j];        a[j]=t;      }    }  }   printf("排列好的字符组是:\n");  //输出排列好得吃数列  for(i=0;i<10;i++)  {     printf("%c ",a[i]);  }  return 0;}

用函数来解决这个问题:

#include <stdio.h>  void function(char a[],int);//尤其注意,此处的函数声明必须是char a[],因为这里穿的是地址,不能仅仅使用char int main(){  int i;  char a[10]={'i','l','o','v','e','y','o','u','y','x'};//十个数的无序字符数列  printf("此程序使用冒泡排序法排列无序数列!\n");  function(a,10);//调用冒泡排序  printf("排列好的字符组是:\n");  //输出排列好得吃数列  for(i=0;i<10;i++)  {     printf("%c ",a[i]);  }  return 0;} void function(char a[],int m){  //冒泡排序  int i,j;  char t;  for(i=0;i<m-1;i++)//n个数的数列总共扫描n-1次  {    for(j=0;j<m-i-1;j++)//每一趟扫描到a[n-i-2]与a[n-i-1]比较为止结束    {      if(a[j]>a[j+1])//后一位数比前一位数小的话,就交换两个数的位置(升序)      {        t=a[j+1];        a[j+1]=a[j];        a[j]=t;      }    }  }  return;}

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI