用二分法在顺序排列的字典中查找单词
typedef struct{           char word[20];/*单词名*/int count; /*单词计数器*/}KeyTab; KeyTab tab[M];
若找到,该单词计数器增1;若没找到,字典新增一个单词

根据题意自己写的代码,有可能有些错误,大家借鉴着看一下吧。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define inf 0x3f3f3f3f
#define M 1010typedef struct{char word[20];int count;
}KeyTab;
KeyTab tab[M];int main()
{int i;for(i=0;i<M;i++) tab[i].count=0,memset(tab[i].word,'\0',sizeof(tab[i].word));//初始化char s[20];int cnt=0;//单词计数 printf("请依次输入单词\n");while(1){scanf("%s",s);if(strcmp(s,"#")==0) break;if(cnt==0) tab[0].count++,strcpy(tab[0].word,s),cnt++;else{int l=0,r=cnt-1,mid,pos;while(l<=r)//二分{mid=l+r>>1;if(strcmp(tab[mid].word,s)<0) l=mid+1;else if(strcmp(tab[mid].word,s)>0) r=mid-1;else break;}if(strcmp(tab[mid].word,s)==0) tab[mid].count++;else{for(i=cnt;i>l;i--) tab[i]=tab[i-1];strcpy(tab[l].word,s);tab[l].count=1;cnt++;}}}for(i=0;i<cnt;i++) printf("%s %d\n",tab[i].word,tab[i].count);return 0;
}

主要是对二分法和结构体的考察。
努力加油a啊,(o)/~

二分法在顺序排列的字典中查找单词(二分)相关推荐

  1. python字典中找最小值_从包含元组值的字典中查找最小值和最大值

    我有一本名为cdc_year_出生的python字典.在 对于cdc_year_出生,关键是单位(在本例中,单位是一年),值是该单位中的出生人数:print(cdc_year_births) {200 ...

  2. python嵌套字典查找元素_在python中的嵌套json字典中查找值

    它有点长,但在上面的例子中:In [1]: import json In [2]: s = """\ ...: { ...: "A": { ...: ...

  3. python嵌套字典代码_python – 尝试在嵌套字典中查找唯一值的总和. (见例子!)

    假设我有这个变量list_1,它是一个字典列表. 每个字典都有一个名为"group"的嵌套字典,其中包含一些信息,包括"name". 我要做的是总结每个唯一组名 ...

  4. python查找单词的位置_如何在字符串/列表中查找单词的位置?

    我在写一个函数,用户输入一个单词,然后输入一个字符串,这个函数识别所有出现的单词以及该单词在字符串中的位置(尽管它实际上在中途被转换成了一个列表).在 我目前的代码只识别第一次出现的单词,没有进一步的 ...

  5. 在有空字符串的有序字符串数组中查找(二分)

    题意: 给定一个按照字典顺序排序的字符串数组 随意向数组中添加空串"" 查找字符串数组的非空串字符串返回其下标,不存在则返回-1 思路: 看见有序,可以考虑用二分法 但是数组中有空 ...

  6. java map 查找_在Java TreeMap中查找元素位置

    我正在使用StrMap TreeMap< String,String>的TreeMap,并使用它来实现词典. 然后我有一个文件的集合,并且想要在字典定义的向量空间(单词的空格)中创建每个文 ...

  7. idea在java文件中查找_Java开发工具IntelliJ IDEA使用源代码系列教程(四):在文件中搜索目标...

    IntelliJ IDEA是Java语言开发的集成环境,IntelliJ在业界被公认为优秀的Java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.Ant.JUnit.CVS整合. ...

  8. 【python】取txt文件中的单词存到SQLite数据库,并且从bing词典爬取单词详情

    自己做一个单词词典,打算从bing词典爬单词. 单词怎么来? 取一些英文文本的txt文件,写一个py文件取txt中的单词存到SQLite数据库中. py文件的功能是: 选择出txt文本中的所有单词,正 ...

  9. pycharm 自动更正_如何在Android的自动更正词典中添加单词或短语

    pycharm 自动更正 If you type a lot of complex names, acronyms, or made-up words on your Android device, ...

最新文章

  1. Go 学习笔记(63)— Go 中的 for ... range 对切片和数组的差异
  2. 模型不work怎么办?141页PPT告诉你怎么改模型
  3. 全国大学生智能汽车竞赛证书打印方法
  4. 图片/容器/字体 透明度[opacity:0.4; filter:alpha(opacity=40)]
  5. 【MFC】工具栏按钮的热点效果
  6. java不使用除号实现除法运算_LeetCode29 Medium 不用除号实现快速除法
  7. c语言通过什么传递参数 寄存器,关于使用寄存器传参解决方法
  8. 用pycharm写python_如何利用pyCharm编写和运行python文件
  9. 想学编程一定要看的文章,你真的了解编程吗?
  10. 由递推关系到通项公式
  11. 【SSM】手动SQL分页和PageHelper插件分页
  12. 取代ClubHouse的节奏!这款开源聊天室太好用了
  13. 【VOIP】yate sip客户端直接呼叫
  14. 中学生读《皮囊》有感相关体会4300字[图]
  15. 弗兰克赫兹大物实验数据处理
  16. 速都app推广:移动网页seo优化和APP发布与aso优化试水
  17. 数据库SDB数据缓冲层(TBL数据缓冲层)向ODB数据贴源层(QSL近源模型层)拉链算法脚本【SQL部分】
  18. IDC预测华为最快今年超苹果丨国家网络安全中心喊话OFFICE,请尽快升级补丁【软件网每日新闻播报│第10-17期】
  19. 菜鸟顺丰掐架敲响个人信息保护警钟
  20. CAD2022下载 简体中文64位

热门文章

  1. linux查找所有字文件,Linux查找含有某字符串的所有文件
  2. matlab做横截面回归,matlab - 将横截面表面轮廓拟合到通用的已知公式以获得系数并对表面进行数学建模 - 堆栈内存溢出...
  3. python线程执行完后释放内存_python变量内存地址释放与加速并行计算多线程
  4. C++CLR类库封装Native类库并用C#调用
  5. python中int的意思_python中”int(a[::-1])”的含义是什么?
  6. python完全支持面向对象编程_python面向对象编程----009
  7. 调用python接口并画图_【PySpark源码解析】教你用Python调用高效Scala接口
  8. 简述驱动桥的动力传递路线_卡车驱动桥中的差速锁究竟有多大的作用?它是如何起作用的?...
  9. IOS设备唯一标示符的方案比较
  10. 电脑是否存在内存泄漏_STM32裸机内存管理解析