演算法之atoi itoa

2021-07-05 22:47:25 字數 861 閱讀 6142

實現字串和整數互轉的兩個函式void itoa(int i, char *buf) 和 int atoi(char *str);

//這個函式必須考慮到32位整數的溢位問題,max表示的是最大值2147483647的16進製表示,min表示的是最小負值-2147483648的16進製表示

#define max ((int)0x7fffffff)

#define min ((int)0x80000000)

int myatoi(const char * str)

else if(*str=='+')

str++;

if(*str<'0'||*str>'9')

return 0;

while(*str>='0' && *str<='9')

str++;

}//負數處理

if(negative)

result *= -1;

return (int)result;

}//因為負數的最小值無法按照先轉變為整數(溢位)才轉變為字串的方式,所以直接硬編碼為字串即可

int my_itoa(int val, char* buf)

return 11;

} *p++ = '-';

val = 0 - val;

}u = (unsigned int)val;

b = p;

dowhile (u > 0);

len = (int)(p - buf);

*p-- = 0;

//swap

dowhile (b < p);

return len;

}

演算法之貪婪演算法

雖然設計乙個好的求解演算法更像是一門藝術,而不像是技術,但仍然存在一些行之有效的能夠用於解決許多問題的演算法設計方法,你可以使用這些方法來設計演算法,並觀察這些演算法是如何工作的。一般情況下,為了獲得較好的效能,必須對演算法進行細緻的調整。但是在某些情況下,演算法經過調整之後效能仍無法達到要求,這時...

演算法之排序演算法

1.概述 排序演算法是計算機技術中最基本的演算法,許多複雜演算法都會用到排序。儘管各種排序演算法都已被封裝成庫函式供程式設計師使用,但了解排序演算法的思想和原理,對於編寫高質量的軟體,顯得非常重要。本文介紹了常見的排序演算法,從演算法思想,複雜度和使用場景等方面做了總結。2.幾個概念 1 排序穩定 ...

演算法之排序演算法

1.概述 排序演算法是計算機技術中最基本的演算法,許多複雜演算法都會用到排序。儘管各種排序演算法都已被封裝成庫函式供程式設計師使用,但了解排序演算法的思想和原理,對於編寫高質量的軟體,顯得非常重要。本文介紹了常見的排序演算法,從演算法思想,複雜度和使用場景等方面做了總結。2.幾個概念 1 排序穩定 ...