栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言冒泡排序算法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言冒泡排序算法

用冒泡排序法对任意输入的 10 个数按照从小到大的顺序进行排序。

实现过程:

(1) 通过两个 for 循环实现冒泡排序的全过程,外层 for 循环决定冒泡排序的趟数,内层 for 循环决定每趟所进行两两比较的次数。

(2) 程序代码如下:

#include 
int main()
{
    int i,j,t,a[10];    //定义变量及数组为基本整型
    printf("请输入10个数:n");
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);    //从键盘中输入10个数
    for(i=0;i<9;i++)    //变量i代表比较的趟数
        for(j=1;j<9-i;j++)    //变最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<10;i++)
                printf("%5d",a[i]);    //将胃泡排序后的顺序输出
        printf("n");
    return 0;
}
运行结果:

请输入10个数:
66 32 23 45 25 5 15 69 46 37
排序后的顺序是:
    5   15   23   25   32   37   45   46   66   69

技术要点:

本实例要求用冒泡法对 10 个数由小到大进行排序,冒泡法的基本思路是,如果要对 n 个数进行冒泡排序,那么要进行 n-1 趟比较,在第 1 趟比较中要进行 n-1次两两比较,在第 j 趟比较中要进行 n-1-j 次两两比较。从这个基本思路中就会发现,趟数决定了两两比较的次数,这样就很容易将两个 for 循环联系起来了。

实现冒泡排序函数bubbleSort,排序(90  21  132  -58  34)实现从小到大排序

#if 0
#define _CRT_SECURE_NO_WARNINGS
#include

int a[] = { 90,21,132,-58,34 };//定义数组变量a并赋值
int n = sizeof(a) / sizeof(int);//定义变量n取数组元素个数

void bubbleSort(int a[], int n)//定义函数bubbleSort
{
	for (int i = 0; i < n-1; i++)//变量i表示比较的趟数 
	{
		for (int j = 0; j < n - 1 - i; j++)//变量j表示每趟两两比较的次数
		{
			if (a[j] > a[j + 1])
			{
				int t;				//利用中间值将值置换
				t = a[j];
				a[j] = a[j + 1];
				a[j + 1] = t;
			}
		}
	}
}

void main()
{
	printf("原数组:n");
	for (int i = 0; i < n; i++)
	{
		printf("%d ", a[i]);
	}

	bubbleSort(a, n);					//调用函数实现数组从小到大排序

	printf("n排序后数组:n");

	for (int i = 0; i < n; i++)
	{
		printf("%d ", a[i]);
	}
}

#endif

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/768755.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号