编程珠玑第二章旋转算法
来源:互联网 发布:域名能转入公司吗 编辑:程序博客网 时间:2024/05/18 20:09
#include <string.h>
#include <stdio.h>
#include <math.h>
#include <time.h>
#define MAX_LEN 50
void rotate(char *,int);
void rotate1(char *,int);
void reverse(char *,int,int);
int main(int argc,char *argv)
{
time_t s_time= 0,e_time = 0;
charstr[MAX_LEN] = "abcoooooooooooooooooxyz";
int i;
intcount_time = 0;
/* str[0]= 'a';
str[1] = 'b';
str[2] = 'c';
str[MAX_LEN-1]= 'W';
str[MAX_LEN-2]= 'W';
str[MAX_LEN-3]= 'W';*/
time(&s_time);
rotate1(str,8);
time(&e_time);
count_time =abs(e_time - s_time);
printf("timecosted:%ds\n",count_time);
puts(str);
return 0;
}
void rotate(char str[],int n)
{
int i,j;
chartmp_str[MAX_LEN];
for (i = 0;i< n; i++)
{
tmp_str[i]= str[i];
}
for (j = 0;i< strlen(str);i++,j++)
{
str[j] =str[i];
}
for (i = 0; i< n;i++)
{
str[strlen(str)-n+i]= tmp_str[i];
}
}
void rotate1(char str[],int n)
{
reverse(str,0,n-1);
// puts(str);
// printf("n= %d strlen = %d\n",n,strlen(str)-1);
reverse(str,n,strlen(str)-1);
// puts(str);
reverse(str,0,strlen(str)-1);
// puts(str);
}
void reverse(char str[],int s,int e)
{
int i;
char tmp;
for (i = 0; i<= (e-s)/2; i++)
{
tmp =str[s+i];
str[s+i] =str[e-i];
str[e-i] = tmp;
}
}
- 编程珠玑-第二章旋转算法篇
- 编程珠玑第二章旋转算法
- 向量旋转算法《编程珠玑》第二章笔记
- rotate旋转分析(编程珠玑第二章)
- 编程珠玑 第二章 算法
- 编程珠玑--旋转算法
- 《编程珠玑》 第二章 算法 习题
- 编程珠玑第二章的算法实现
- 《编程珠玑》--第二章 啊哈!算法
- 【编程珠玑】第二章:啊哈,算法
- 变位词算法(编程珠玑第二章)
- 编程珠玑之第二章:杂耍算法
- 编程珠玑第二章习题—向量的旋转
- 编程珠玑-第二章(字符串旋转与排序)
- 编程珠玑---第二章---n元一维向量向左旋转
- 编程珠玑第二章
- 编程珠玑第二章
- 编程珠玑第二章
- HDU 1431 素数回文
- 通信网络实验——UDP 的socket实现
- 回调函数的作用与实现
- matlab 快捷键
- HDU 1042 N!
- 编程珠玑第二章旋转算法
- 算法开篇
- HDU 1008 Elevator
- 求一组整数中最小的两个数
- 联想笔记本开机和关机NumLK一直灯亮着
- get请求中的中文乱码问题的解决方法
- HDU 1108 最小公倍数
- tomcat配置
- 推荐一些Linux下常用的软件