C语言——冒泡排序法,数组

简介: C语言——冒泡排序法,数组

方法介绍

冒泡排序又称起泡法,它从头到尾每次都对相邻的两个数进行比较,将较大的那个数换到后一个元素中(当然也可以将最小数换到后面,这里仅以从小到大的排序为例)。每一轮比较都会找出最大数放在这些数后面。

如果比较N个数,则需要比较(N-1)轮。

第一轮比较(N-1)次,在N个数中找出最大数放在最后。                                                                 第二轮对剩下的(N-1)个数进行比较需要比较【(N-1)-1】次,将最大的数放入倒数第二个数组元素中。

............

以此类推,第(N-1)轮需要进行1次比较,将剩下的两个数,最大的放入第二个数组元素,最小的在第一个数组元素。

例题和代码实现

从键盘输入8个整数:1 4 6 -1 9 7 5 2 从小到大排序

#include <stdio.h>
int main()
{
  int i,j,t,a[8];
  printf("排序的数组:");
  for(i=0;i<8;i++)
  {
    scanf("%d",&a[i]);
  }
  printf("\n");
  for(i=0;i<7;i++)/*共需比较7轮,负责进行的轮数*/
  {
    for(j=0;j<7-i;j++)/*第i轮需要比较的次数:7-i*/ 
    {
      if(a[j]>a[j+1])
      {
        t=a[j];
        a[j]=a[j+1];  /*前一个元素比后一个元素大,就交换元素 */
        a[j+1]=t;
      }   
    }
   } 
   printf("排序后的数组:");
   for(i=0;i<8;i++)
   {
    printf("%3d",a[i]);/*3d是为了控制域宽,使输出的数组排列不那么紧凑,3可以不加*/ 
   }
   return 0;
 }

冒泡排序比较简单,其实现原理就像水中冒泡,越到水面水泡越小。后续还会发一些关于C语言的题型,方法等,有意愿学习,交流的,可以关注,收藏。

相关文章
|
5天前
|
存储 编译器 C语言
C语言之数组
C语言之数组
26 0
|
5天前
|
C语言
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
|
4天前
|
存储 C语言
C语言——数组(下)
C语言——数组(下)
10 0
C语言——数组(下)
|
4天前
|
C语言
C语言——数组(上)
C语言——数组(上)
11 0
|
5天前
|
C语言
每天一道C语言编程(数组操作)
每天一道C语言编程(数组操作)
8 0
|
5天前
|
C语言
每天一道C语言编程(第一弹~):数组
每天一道C语言编程(第一弹~):数组
9 0
|
5天前
|
机器学习/深度学习 C语言
C语言三维数组的创建
该代码片段展示了如何在C语言中创建一个动态的3D数组。由于`n`在编译时未知,不能直接声明为`int f[n][n][n]`。正确的方法是使用`malloc`进行动态内存分配。首先分配`n`个`int **`,然后对每一层分配`n`个`int *`,最后每个元素分配`n`个`int`。之后可以使用这个3D数组,并在完成后正确释放内存。
12 2
|
5天前
|
C语言
【C语言/数据结构】排序(选择排序,推排序,冒泡排序)
【C语言/数据结构】排序(选择排序,推排序,冒泡排序)
14 0
|
5天前
|
C语言
C语言的冒泡排序
C语言的冒泡排序
18 0
|
5天前
|
C语言
数组深入剖析(C语言基础入门)
数组深入剖析(C语言基础入门)