當前位置:首頁 » 編程語言 » c語言中說的按字典順序是什麼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中說的按字典順序是什麼

發布時間: 2023-08-04 10:28:05

c語言 輸入10個單詞 怎麼才能按字典順序輸出 分別用插入排序和歸並排序兩種方法

建立 索引表, 單詞的存儲索引--單詞權值 逐個對應,每個單詞 對應一個權值,每個字母對應 0~25, 單詞的最後字母對應0,向前依次對應 26, 26*26, 26*26*26。。。。, 26進制數,類似於十進制數, 然後 按權值進行排序

Ⅱ C語言 字元串數組字典排序

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

constintMAXLEN=100;
constintMAXSIZE=10;

voidsort(chartitle[][MAXLEN],intn){//排序
inti,j,k;
chartstr[MAXLEN];
for(i=0;i<n-1;++i){
k=i;
for(j=i+1;j<n;++j){
if(strcmp(title[k],title[j])>0)
k=j;
}
if(k!=i){
strcpy(tstr,title[k]);
strcpy(title[k],title[i]);
strcpy(title[i],tstr);
}
}
}

voidshow(chars[][MAXLEN],intn){
inti;
for(i=0;i<n;++i)
printf("%s",s[i]);
puts("");
}

intmain(void){
chars[MAXSIZE][MAXLEN];
inti;
for(i=0;i<MAXSIZE;++i){
printf("string(%02d/%d):",i+1,MAXSIZE);
fgets(s[i],MAXLEN,stdin);
}
printf("排序前: ");
show(s,MAXSIZE);
sort(s,MAXSIZE);
printf("排序後: ");
show(s,MAXSIZE);
return0;
}

Ⅲ C語言遞歸實現字典順序枚

#include<stdio.h>
voidpermute(int);
#defineN7
inta[N];
intn=0;

voidmain()
{
inti;
for(i=0;i<N;i++)
{
a[i]=i+1;
}
permute(N);
printf("totalis:%d ",n);
}
voidpermute(intk)
{
inti,j,temp;
if(k==1)
{
for(i=0;i<N;i++)
{
printf("%d",a[i]);
}
printf(". ");
n++;
if(n%4==0)
{
printf(" ");
}
}
else
{
permute(k-1);
for(j=N-k+1;j<N;j++)
{
temp=a[N-k];
a[N-k]=a[j];
a[j]=temp;
permute(k-1);
temp=a[N-k];
a[N-k]=a[j];
a[j]=temp;
}
}

}

Ⅳ 求一個c語言按字典序全排列的方法

如果是想學習一下演算法,用c語言不錯。如果是實際使用需要,就用現成的木頭超級字典生成器(MutouDic),工具集里有一個排列字典工具,可以生成任意個元素,任意長度的升序排列、降序排列和全排列。

Ⅳ 求高人指教,C語言中,漢字姓名怎麼按字典順序排列

字典是按照拼音排序的,沒有現成的拼音排序功能。
你可以自己做鍵值表對應啊。就是做數據,把百家姓和其拼音組合對應的表,可以用文件存儲,也 可以用資料庫存儲,或者乾脆直接寫在代碼了,用結構數組或鏈表載入。
然後需要排序的時候,直接用結構數組或鏈表排序啊。
如果你除了姓,連名字都要算在排序中,那你得把整個漢字字典的文字都做成鍵值表,別人起名字用什麼字,誰能知道。那你這就純粹是數據問題了。
我剛才試了一下網路搜索,網路文庫里有現成的漢字拼音對照表,你可以試試,全不全我就不知道了。

Ⅵ c語言中如何通過函數按字典順序排列輸入的十個字元串

如果使用的是冒泡排序,那麼和整數排序唯一的不同就是這個部分:

if(a[j]>a[j+1])
swap(a[j],a[j+1]);

那麼在字元串排序的時候,需要用到一個庫函數叫strcmp(char a[],char b[]);

這個函數在<cstring>庫中[或者c語言中在<string.h>庫中]

這個函數的用法就是輸入字元串a,b,判斷a,b的字典序大小.

若a的字典序小返回負值

若a的字典序和b相同返回0

若a的字典序大於b的字典序返回正數

然後你將上面冒泡的部分改一下的話就是:

if(strcmp(a[j],a[j+1])>0)
swap(a[j],a[j+1]);

這樣的話就可以實現冒泡排序了.


如果你使用的是系統快排的話,你可以用string,也可以定義一個結構體

structNode{
charch[1000];
}s[12];

boolcmp(constNode&A,constNode&B){
returnstrcmp(A.ch,B.ch)<0;
}

intmain(){
...
sort(s+1,s+10+1,cmp);
...
}

這樣的話也是可以實現的.