指针自增的效率问题
先上代码,
#include<iostream>
#include<stdlib.h>
#include<time.h>
#include <windows.h>
using namespace std;
int main(){
clock_t start, end;
char str[100];
char *p=str;
for(int i=0;i<100;i++){
str[i]=100-i;
printf("%d ",str[i]);
}
printf("\n");
start=clock();
for(int i=0;i<100;i++){
for(int j=0;j<100-i-1;j++){
if(*(str+j)>*(str+j+1)){
char temp=*(str+j);
*(str+j)=*(str+j+1);
*(str+j+1)=temp;
}
}
}
for(;*p!='\0';p++){
for(;*p!='\0';p++){
if(*p>*(p+1)){
char *temp=p;
*p=*(p+1);
*(p+1)=*temp;
}
}
}
end=clock();
for(int i=0;i<100;i++){
printf("%d ",str[i]);
}
printf("\n用时:%f",double(end-start)*1000);
system("pause");
return 0;
}
第一个冒泡排序用时(24单位时间)比第二个冒泡排序(2单位时间)用时长的多
*(arr+i)本质上和arr[i]是一样的
所以指针自增的效率属实快很多……
2021年 December 19日|16:31 
目录: 提问、复习等, 计算机 标签:,c语言, 指针
欢迎留下你的评论~~
订阅
登录
0 Comments