排序 散列

1.读取字符串

方法一:gets(char *s)

从标准输入读入一个完整的行,直到遇到换行符。它会用空字符'\0'取代行尾的换行符'\n'。例如:gets(str);

方法二:while((str[i++]=getchar())!='\n')

若平台不支持gets,可以用getchar一个一个读直到读到换行为止。最后的换行符也保存到字符串里了。

方法三:fgets(char *s,int size,FILE *stream)

fgets()从stream中读字符存到s所指空间,直到出现换行符、读到文件尾或是读了size-1个字符为止。fgets()会把换行符存储到字符串里。例如:fgets(name, MAX, stdin); 

2. 散列

最常用的做法是直接把读入的数作为数组下标(即散列函数是恒等变换)来统计该数的属性。先打表(处理输入),再查表(输出结果)。若需统计次数则表为int型,若只需是否出现则用bool型。int、char直接就能做下标,字符串需写一个很短的哈希函数转换为唯一的下标(类似于进制转换)。

3.c++中全局变量自动初始化为该类型的0值(如bool型为false),局部变量必须自己初始化。散列中的表要记得初始化。

4.sort(首元素地址,尾元素地址的下一个地址,比较函数(选填))

默认升序,若要降序则cmp函数return a>b。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值