字典序最小单词c语言,用C++编写一个字典设计的程序,要求使用基数排序的算法。将一组英文单词按字典序排序,设最长的单词有n个字母...

本文介绍了一个使用C++实现的基数排序算法,该算法通过创建26个“桶”来对字符串数组中的单词进行排序。通过对每个单词的每一位进行比较并放入相应的桶中,实现了对单词的排序。

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

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

zhouli819

2013.03.06

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:55%    等级:13

已帮助:14921人

#include "iostream"

#include "string"

using namespace std;

#define n 10 //假设没个单词最大数目是10

#define count 5 //假设只有5个单词

int main()

{

int i=0,j=0,k=0,d=0,m=0;

string c[count];//存放单词

string str[26][count];//用来存放基数排序的桶

cout<

for (i=0;i

{

cin>>c[i];

}

for (j=9;j>=0;j--)//根据基数排序法,

//对单词各位(0—n-1)进行排序

{

for (i=0;i

{

k=c[i][j]-97;

if (k<0)

{

k=0;

}

str[k][m++]=c[i];

}

for(i=0,k=0;i

for(d=0;d

if (str[k][d][0]>96&&str[k][d][0]<123||str[k][d][0]>64&&str[k][d][0]<91)

//判断26各排序桶是否有单词

{

c[i++]=str[k][d];

str[k][d][0]=32;

}

m=0;

}

for (i=0;i

{

cout<

}

return 0;

}

00分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值