码迷,mamicode.com
首页 > 编程语言 > 详细

C语言:时间复杂度为O(1)的两则小程序

时间:2015-10-14 21:56:00      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:c语言   字符   时间复杂度o(1)   大小写   

这两个例子都是用了同一种编程思想:对于字符的操作,char类型最多可以有256个字符,但是可以满足对大小写、数字、其他基本字符的使用。利用字符的ascii码值作为大小为256的数组的下标,将要查找的内容/条件填充到数组里,这样通过查看对应下标的内容,即可实现相应操作。

这就是时间复杂度为O(1)的编程思想,这也是基于哈希表的一种,关于哈希表请自己查看。


下面看第一个例子:当输入小写字母a,输出大写字母Z,当输入小写字母b,输出大写字母Y,...当输入小写字母z,输出大写字母A

  1 #include<stdio.h>

  2 #include<string.h>

  3 

  4 void change(char arr[],int ch){

  5         int i=0;

  6         int j=90;

  7         for(i=97;i<123;i++){              //对arr[256]中a-z的下标里逐个放入Z-A

  8                         arr[i]=j--;

  9         }

 10         printf("%c\n",arr[ch]);

 11 }

 12 

 13 int main(){

 14         char arr[256]= {0};

 15         int ch =0;

 16         ch=getchar();

 17         change(arr,ch);

 18         return 0;

 19 }

 第二个例子:判读一个字符在不在一个字符串里

技术分享

技术分享

对字符串中出现的字符对应的数组元素位置置1,当输入的字符ascii码作为下标的数组元素值为1是找到,为0时没找到。

本文出自 “moLova” 博客,请务必保留此出处http://molova.blog.51cto.com/10594266/1702896

C语言:时间复杂度为O(1)的两则小程序

标签:c语言   字符   时间复杂度o(1)   大小写   

原文地址:http://molova.blog.51cto.com/10594266/1702896

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!