编写冒泡排序,排序一个整形数组

本文详细介绍了冒泡排序算法的原理及实现过程,通过具体的示例代码展示了如何使用C语言对整数数组和字符串数组进行排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编写冒泡排序,排序一个整形数组

冒泡法:对于n个数进行从小到大冒泡排序,一共需要冒泡n-1次。两两进行比较,每冒泡排序一次,最大值在最下边(最后一个位置)。

比如:

87 12 56 45 78

87和12交换:12 87 56 45 78

87和56交换:12 56 87 45 78

87和45交换:12 56 45 87 78

87和78交换:12 56 45 78 87

到此第一趟排序结束,接下来的每一趟排序都是这样。

代码如下:

#include<stdio.h>
#include<stdlib.h>

void bubble(int str[],int len)
{
	int i,j,temp;
	for(i=0;i<len-1;i++)//进行len-1趟比较
	{
		for(j=0;j<len-1-i;j++)//进行len-1-i次两两比较
		{
			if(str[j]>str[j+1])
			{
				temp=str[j];//交换两个数
				str[j]=str[j+1];
				str[j+1]=temp;
			}
		}
	}
}

int main()
{
    int arr[10],len,i;
	for(i=0;i<10;i++)//输入整型数组
	{
		scanf("%d",&arr[i]);
	}
	len=sizeof(arr)/sizeof(arr[0]);
	bubble(arr,len);
	for(i=0;i<len;i++)//输出整型数组
	{
		printf("%d ",arr[i]);
	}
	system("pause");
	return 0;
}

使用冒泡排序,排序多个字符串。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main()
{
	char *str[] = { "bdea","bade","decd","asdf" };//此处应定义为指针数组
	int len = sizeof(str) / sizeof(str[0]);
	int i, j;
	for (i = 0; i < len - 1; i++)
	{
		for (j = 0; j < len - i - 1; j++)
		{
			if (strcmp(str[j], str[j + 1])>0)
			{//字符串进行比较,并交换大小,从小到大排序
				char*temp = str[j];
				str[j] = str[j + 1];
				str[j + 1] = temp;
			}
		}
	}
	for (i = 0; i < len; i++)
	{
		printf("%s ", str[i]);
	}
	system("pause");
	return 0;
}

本文出自 “Scen” 博客,请务必保留此出处http://10741357.blog.51cto.com/10731357/1712342

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值