C语言冒泡排序法的实现(升序排序法)

所属分类: 软件编程 / C 语言 阅读数: 87
收藏 0 赞 0 分享

任务代码:

数字的排序:

#include <stdio.h>
 
#define SIZE 10
int 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 10
int 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;
}

执行情况:



知识总结:

冒泡排序法:也叫升序排序法,但是相比起二分法查找只能应用于有序数列,二如何将一个无序数列变的有序就可以使用冒泡排序法!!!


对上面的过程进行总结:


该思想体现在成续上的解法是:


实例:


冒泡排序不仅仅可以应用于数字同样可以应用于字符字母的快速排序:


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

利用C语言来求最大连续子序列乘积的方法

这篇文章主要介绍了利用C语言来求最大连续子序列乘积的方法,基本的思路以外文中还附有相关ACM题目,需要的朋友可以参考下
收藏 0 赞 0 分享

用C语言判断一个二叉树是否为另一个的子结构

这篇文章主要介绍了用C语言判断一个二叉树是否为另一个的子结构,是数据结构学习当中的基础知识,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言实现的阶乘,排列和组合实例

这篇文章主要介绍了C语言实现的阶乘,排列和组合的方法,涉及C语言数学运算的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言查找数组里数字重复次数的方法

这篇文章主要介绍了C语言查找数组里数字重复次数的方法,涉及C语言针对数组的遍历与判断技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言简单实现计算字符个数的方法

这篇文章主要介绍了C语言简单实现计算字符个数的方法,涉及C语言针对字符串的简单遍历与判定技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

c实现linux下的数据库备份

本文给大家简单介绍下c实现linux下的数据库备份的方法和具体的源码,十分的实用,有需要的小伙伴可以参考下。
收藏 0 赞 0 分享

C++获得文件状态信息的方法

这篇文章主要介绍了C++获得文件状态信息的方法,包括文件状态信息、文件所在磁盘盘符、文件创建时间、访问时间及修改日期等,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言按关键字搜索文件夹中文件的方法

这篇文章主要介绍了C语言按关键字搜索文件夹中文件的方法,涉及C语言文件操作及字符串查找的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言之字符串模糊查询方法的实现

本篇文章主要为大家介绍字符串模糊查询的C语言程序编写方法,有需要的朋友可以参考下
收藏 0 赞 0 分享

C语言实现BMP转换JPG的方法

这篇文章主要介绍了C语言实现BMP转换JPG的方法,涉及C#图片格式转换的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多