空间换时间——为字符串排序
来源:互联网 发布:大数据基础知识考试 编辑:程序博客网 时间:2024/05/16 09:14
//按字典序排列字符串//相同字母的大小写,小写放在大写的前面//例如:R,B,B,b,W,W,B,R,B,w//排序后:b,B,B,B,B,R,R,w,W,W//思路,空间换时间。//将字符串遍历,记录数量,然后按数量输出,时间复杂度为O(n)#include<iostream>#include<cstdio>#include<malloc.h>#include<memory.h>using namespace std;//实现功能的排序函数void sortByDic(char *a,int len){ int count[52]; for(int i=0;i<52;i++) { count[i]=0; } for(int i=0; i<len; i++) { if(a[i]>='A'&&a[i]<='Z') { count[(a[i]-'A')*2+1]++;//大写用奇数表示 } if(a[i]>='a'&&a[i]<='z') { count[(a[i]-'a')*2]++;//小写用偶数表示 } } for(int i=0;i<52;i++) { if(count[i]!=0) { if(i%2==1) { char b=(char)((i-1)/2+'A'); for(int j=0; j<count[i];j++) cout<<b; } if(i%2==0) { char b=(char)((i/2)+'a'); for(int j=0; j<count[i];j++) cout<<b; } } }}int main(){ char *a; int n; cout<<"输入字符数量:"<<endl; cin>>n; a = (char *)malloc(n*sizeof(char)); cout<<"输入字符:"<<endl; cin>>a; cout<<"排序后:"<<endl; sortByDic(a,n);}
0 0
- 空间换时间——为字符串排序
- 矩阵模拟——空间换时间
- 丑数——空间换时间
- 空间换时间一排序算法
- 简单空间换时间排序的例子
- 1006 排序输出 关于空间换时间...******
- 以空间换时间的计数排序
- redis-sourcecode 字符串之空间换时间
- 虚拟列(Virtual Column)——时间换空间
- java 判断两个字符串是否由相同的字符组成 排序算法 空间换时间的方法
- 以空间换时间
- 以时间换空间
- 【哲理】空间换时间
- 空间换时间
- 每日一题(44)—— 请列举一个软件中时间换空间或者空间换时间的例子
- 以时间换空间、以空间换时间、垃圾回收
- JDK 源码设计 时间换空间 & 空间换时间
- 代码时间换空间以及空间换时间
- 日本旅行一些注意事项
- 测试时测试测试时测试测试时测试测试时测试
- 配置ssh公钥访问oschina
- 使用接插件需要注意的问题
- 转载一个我看到的很不错的PIL 处理图片尺寸的文章
- 空间换时间——为字符串排序
- 只考加法的面试题(编程之美)
- 使用接插件需要注意的问题
- DSP6000的上电及供电
- HDU 5024 Wang Xifeng's Little Plot (搜索)
- 中断阻塞睡眠interrupt的使用
- 手机木马危机支付宝安全
- 读书札记-2013年12月
- DSP6000的几个简单优化技巧