c语言字母按字典序排序,C语言中,对于要按字典序对10个字符串排序的问题,冒泡法和选择法有什么区别?...

本文介绍了两种基本的排序算法——选择法和起泡法(冒泡法),并提供了使用C语言实现这两种算法的具体示例代码。

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

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

j6536561

2013.07.04

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:51%    等级:11

已帮助:8799人

排序算法

①:选择法:

选择法(按升序来说):将第一位和第二位比较,小者放在第一位,再将此时的第一位与第三位比较,仍然是小者放在第一位,如此重复,当第一位和最后一位比较完后第一位上存放的就是最小值了,再用相同的方法对第二位设置,第二位和最后一位比完后第二位上存放的就是次最小值了,然后第三位、第四位...都进行相同的操作,当倒数第二位也被比较完后,升序序列就排好了。

例题见《C语言程序设计》-谭浩强 P152 课后习题7.2

程序如下:

#include "stdio.h"

main()

{ int arr[10],i,j,temp;

printf("请输入十个整数:\n");

for(i=0;i<=9;i++)

{

scanf("%d",&arr[i]);

}

for(i=0;i<9;i++)

{ for(j=i+1;j<10;j++)

{

if(arr[i]>arr[j])

{

temp=arr[i];

arr[i]=arr[j];

arr[j]=temp;

}

}

}

printf("排序后的序列为:\n");

for(i=0;i<=9;i++)

{

printf("%d ",arr[i]);

}

getch();

}

②:起泡法 (又名冒泡法)

起泡法(按升序来说):假设有10个数,那么共需要比较9轮,第一轮中把第一个数和第二个数比较,大者放到后面,第二个数再和第三个数比较,大者放到后面,第三个和第四个数比较,大者放到后面……第九个数和第十个数比较,大者放到后面,这样,第一轮比较结束后最大的数就放到最后一位,用同样的方法比较,第二轮比较完后次大值就放在倒数第二位上……这样直到比较完第九轮,所有的数字都已经按照升序排列。

例题见《C语言程序设计》-谭浩强 P134 例题7.3

程序如下:(设共十个数)

#include

void main()

{

int a[10];

int i,j,t;

printf("input 10 numbers:\n");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

printf("\n");

for(j=0;j<9;j++)

for(i=0;i<9-j;i++)

if(a[i]>a[i+1])

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

printf("the sorted numbers:\n");

for(i=0;i<10;i++)

printf("%d ",a[i]);

getch();

}

这是我写的,希望对楼主有所帮助

07分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值