欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-11-09 07:51:50
这两个例子都是用了同一种编程思想:对于字符的操作,char类型最多可以有256个字符,但是可以满足对大小写、数字、其他基本字符的使用。利用字符的ascii码值作为大小为256的数组...
这两个例子都是用了同一种编程思想:对于字符的操作,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 }