200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 0904 atoi字符串转化为整数源码

0904 atoi字符串转化为整数源码

时间:2020-02-16 07:47:19

相关推荐

0904 atoi字符串转化为整数源码

1、atoi源码

#include<stdio.h>#include<assert.h>bool isdigit1(char c){if(c<='9'&&c>='0')return true;elsereturn false;}int AsciiToInt(char *str){assert(str!=NULL); char sign='+';int total=0;int c;char *ptr=str;if(*ptr=='-'||*ptr=='+'){sign=*ptr++;}c=*ptr;while(isdigit1(c)){total=total*10+(c-'0');c=*(++ptr);}if(sign=='-')total=-total;return total;}int main(){char str[]="-1245";int sum1=AsciiToInt(str);printf("%d\n",sum1);}

2、希尔排序比直接插入排序快的原因

希尔排序的时间性能优于直接插入排序的原因:

①当文件初态基本有序时直接插入排序所需的比较和移动次数均较少。

②当n值较小时,n和 的差别也较小,即直接插入排序的最好时间复杂度O(n)和最坏时间复杂度0( )差别不大。

在希尔排序开始时增量较大,分组较多,每组的记录数目少,故各组内直接插入较快,后来增量di逐渐缩小,分组数逐渐减少,而各组的记录数目逐渐增多,但由于已经按di-1作为距离排过序,使文件较接近于有序状态,所以新的一趟排序过程也较快。

因此,希尔排序在效率上较直接插入排序有较大的改进。

希尔排序为什么不稳定

希尔排序为什么是不稳定的呢 ?

例子 3 5 10 8 7 2 8 1 20 6

d=2 分成2组 (3 10 7 8 20) 和(5 8 2 1 6) 第一组的8在第二组的后面

排序后(3 1 7 2 8 5 10 6 20 8,现在是第一组的8在第二组前面了 这里不稳定

/cjf_iceking/article/details/7916194

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。