C语言冒泡法

简介: C语言冒泡法

657fd67d426243ce9e5df0eac1f54407.png


哈喽!


大家好,我们今天结束C语言期末考试啦


不知道各位同学考完了没呢?


由于在考试前依然有很多同学不清楚冒泡法怎么用


这期我专门整理了一下冒泡法的用法,


供大家参考哦!


我们先来看一下源代码:


// 冒泡法对数字进行排序
#include<stdio.h>
int main() {
  int a[10],i,j,t;
  printf("请输入10个数字,数字中间用空格隔开:\n"); // 输出给用户提示信息 
  for(i=0;i<=9;i++)
    scanf("%d",&a[i]);
  for(i=0;i<9;i++) // 排序过程 
    for(j=0;j<9-i;j++)
      if(a[j]>a[j+1]) {
        t=a[j];
        a[j]=a[j+1];
        a[j+1]=t;
      }
  printf("排序后的结果是:\n"); // 提示输出 
  for(i=0;i<=9;i++)
    printf("%d\t",a[i]);
  return 0;
}


从代码中我们可以发现,除去输入输出数组语句外,


并没有多少代码了,


冒泡法的原理就是:


假设将10个数从小到大排列,


相邻两个数比较,如果发现前一项比后一项大,那么这两项


就互换,之后再两两相比,这样比较一轮下来,


我们就可以得到一个最大值。


需要排十个数,外循环就是i=0~i=8,9次即可


for(i=0;i<9;i++) {
    for(j=0;j<9-i;j++)
      if(a[j]>a[j+1]) {
        t=a[j];
        a[j]=a[j+1];
        a[j+1]=t;
      }
}


下面是运行结果图:


b09bc76c78af43848022ac8121a626e2.png


当然,我们还可以将代码加以改进,比如自定义函数:


// 升级版----调用函数使用冒泡法
#include<stdio.h>
void fun(int a[]); //声明使用冒泡法排序的函数 
int main() {
  int a[10],i;
  printf("请输入10个数字,数字中间用空格隔开:\n"); // 输出给用户提示信息 
  for(i=0;i<=9;i++)
  scanf("%d",&a[i]); // 在这里输入10个要排序的数字
  fun(a); // 调用函数 
  printf("排序后的结果是:\n"); // 提示输出 
  for(i=0;i<=9;i++)
  printf("%d\t",a[i]); // 输出排好序后的10个数字 
  return 0;
} 
// 函数体
void fun(int a[]) {
  int t,i,j;
  for(i=0;i<9;i++) // 排序过程 
    for(j=0;j<9-i;j++)
      if(a[j]>a[j+1]) {
        t=a[j];
        a[j]=a[j+1];
        a[j+1]=t;
      }
}  

下面是运行结果图:


097ff8ade97b4658a52256fab790d8e8.png


就到这里吧!我们下期见,拜拜~


相关文章
|
C语言
C语言之冒泡法对数组元素进行排序
C语言之冒泡法对数组元素进行排序
|
6月前
|
搜索推荐 C语言
C语言简单实现冒泡函数
C语言简单实现冒泡函数
|
6月前
|
算法 搜索推荐 C语言
C语言数据结构之排序整合与比较(冒泡,选择,插入,希尔,堆排序,快排及改良,归并排序,计数排序)
C语言数据结构之排序整合与比较(冒泡,选择,插入,希尔,堆排序,快排及改良,归并排序,计数排序)
|
6月前
|
算法 C语言
C语言数组实例(冒泡算法、猜数字)
C语言数组实例(冒泡算法、猜数字)
33 0
|
算法 搜索推荐 C语言
c语言数据结构-排序(冒泡+选择+插入+希尔)
c语言数据结构-排序(冒泡+选择+插入+希尔)
|
搜索推荐 C语言
【C语言】“qsort函数详解”与“使用冒泡思想模拟使用qsort”
qsort的介绍: qsort ()函数是 C 库中实现的快速排序算法,包含在 stdlib.h 头文件中 此函数需要四个参数void qsort(void* *base, size_t nitems, size_t size, int (compar)(const void * , const void)) char* base —— 指向要排序的数组首元素地址的指针 size_t nitems —— 要排序数组的元素个数 size_t size —— 数组每个元素大的小 (有非常重要的作用) int compar(const void *,const void *) —— 由使用者提供的一
|
算法 搜索推荐 C语言
c语言数据结构冒泡|选择|插入|希尔
目录 冒泡排序: 选择排序: 插入排序: 希尔排序: 冒泡排序: 原理:基于交换的排序,每一轮将序列中的最大值(最小值)放到数组的尾部。使用循环重复操作,(每轮排序都会少一个最大值或最小值),当最后只剩下一个数据的时候整个序列就已经排好序了。 代码思路:从第一个数开始,每一次在数组中选两个数继续比较,如果前面的数大于后面的数,就将两者交换位置,第一次是1,2两个位置比较,第二次就是2,3两个位置比较,以此类推 //采用两层循环实现的方法 //arr是待排序数组的首地址,n是数组元素个数 void bubblesort1(int* arr, int n) { if (n < 2)
c语言数据结构冒泡|选择|插入|希尔
|
算法 C语言
C语言数组实例(冒泡算法、猜数字)
C语言数组实例(冒泡算法、猜数字)
110 0
C语言数组实例(冒泡算法、猜数字)
|
搜索推荐 C语言
c语言-数组排序算法-冒泡法排序
冒泡法顺序指的是在排序时,从前往后扫描待排序记录,每次比较数组中相邻的两个数组元素的值,将较小的数(按从小到大排列)排在较大的数前面。
c语言-数组排序算法-冒泡法排序