20140904 atoi字符串转化为整数源码
生活随笔
收集整理的這篇文章主要介紹了
20140904 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在第二組前面了?? 這里不穩定
?
?
http://blog.csdn.net/cjf_iceking/article/details/7916194
轉載于:https://www.cnblogs.com/yexuannan/p/3955590.html
總結
以上是生活随笔為你收集整理的20140904 atoi字符串转化为整数源码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt入门(3)——信号和槽
- 下一篇: Leetcode: Multiply S