diff --git a/算法分析思路/分治算法.md b/算法分析思路/分治算法.md new file mode 100644 index 0000000..e69de29 diff --git a/算法分析思路/动态规划.md b/算法分析思路/动态规划.md new file mode 100644 index 0000000..e69de29 diff --git a/算法分析思路/回溯法.md b/算法分析思路/回溯法.md new file mode 100644 index 0000000..e69de29 diff --git a/算法分析思路/枚举迭代.md b/算法分析思路/枚举迭代.md new file mode 100644 index 0000000..e69de29 diff --git a/算法分析思路/贪心算法.md b/算法分析思路/贪心算法.md new file mode 100644 index 0000000..e69de29 diff --git a/算法分析思路/递归.md b/算法分析思路/递归.md new file mode 100644 index 0000000..e69de29 diff --git a/算法问题选编/测试代码/1.c b/算法问题选编/测试代码/1.c new file mode 100644 index 0000000..67829ea --- /dev/null +++ b/算法问题选编/测试代码/1.c @@ -0,0 +1,37 @@ + +#include "stdio.h" +#include "string.h" + +int string_to_integer(char *s,int length){ + + if (length>1) + { + return s[0]=='-'?string_to_integer(s,length-1)*10-(s[length-1]-'0'):string_to_integer(s,length-1)*10+s[length-1]-'0'; + }else{ + return s[0]=='-'?-1/10:s[0]-'0'; + + } +} + +/* 问题: +1. s是空字符串 +2. s传参为非数字字符 +3. 超出整数所能表示范围 +*/ + + +int main(){ + + char *s = "4323"; + + printf("integer == %d\n",string_to_integer(s,strlen(s)) ); + printf("integer == %d\n",string_to_integer("12342",5)); + printf("integer == %d\n",string_to_integer("-11",3) ); + printf("integer == %d\n",string_to_integer("-5",2) ); + printf("integer == %d\n", string_to_integer("3",1)); + + printf("integer == %d\n", string_to_integer("abcd",4)); + printf("integer == %d\n", string_to_integer("a",1)); + + return 0; +} diff --git a/算法问题选编/测试代码/2.c b/算法问题选编/测试代码/2.c new file mode 100644 index 0000000..b8f86c9 --- /dev/null +++ b/算法问题选编/测试代码/2.c @@ -0,0 +1,23 @@ + +#include "stdio.h" + + +int factorial(int n){ + + int ret=0; + (n==0) || (ret=n+factorial(n-1)); + return ret; +} + + +int main(){ + + int n=10; + printf("factorial(10)= %d\n",factorial(10)); + printf("factorial(5)= %d\n",factorial(5)); + printf("factorial(1)= %d\n",factorial(1)); + printf("factorial(0)= %d\n",factorial(0)); + + return 0; +} + diff --git a/算法问题选编/测试代码/3.c b/算法问题选编/测试代码/3.c new file mode 100644 index 0000000..669624e --- /dev/null +++ b/算法问题选编/测试代码/3.c @@ -0,0 +1,71 @@ + +#include "stdio.h" +#include "stdlib.h" + +char *integer_to_bin(long integer){ + + int bit_num = sizeof(long)*8; + char *buffer= (char *)malloc(bit_num+1); + if (buffer==NULL) + { + return "malloc error"; + } + buffer[bit_num]='\0'; + + for (int i = 0; i < bit_num; ++i) + { + buffer[i]= integer<>(bit_num-1); + buffer[i]= buffer[i]==0?'0':'1'; + + } + return buffer; + +} + +char *integer_to_hex(long integer){ + + int bit_num=sizeof(long)*8/4; + char *buffer=(char *)malloc(bit_num+3); + buffer[0]='0'; + buffer[1]='x'; + buffer[bit_num+2]='\0'; + char *tmp=&buffer[2]; + + for (int i = 0; i < bit_num; i++) + { + tmp[i]= integer<<(i*4)>>(bit_num*4-4); + tmp[i]= tmp[i]>=0?tmp[i]:tmp[i]+16; + tmp[i]= tmp[i]<10?(tmp[i]+48):(tmp[i]-10+'A'); + } + + return buffer; +} + + +/* + +A 65 +0 48 + +*/ + + + +int main(){ + + + printf("b(11) = %s\n", integer_to_bin(11)); + printf("b(1023) = %s\n",integer_to_bin(1023) ); + printf("b(23564) = %s\n",integer_to_bin(23564) ); + + + printf("h(11) = %s\n", integer_to_hex(11)); + printf("h(1023) = %s\n",integer_to_hex(1023) ); + printf("h(23564) = %s\n",integer_to_hex(23564) ); + printf("b(11) = %x\n", 11); + printf("b(1023) = %x\n",1023 ); + printf("b(23564) = %x\n",23564 ); + + + return 0; +} \ No newline at end of file diff --git a/算法问题选编/测试代码/4-1.c b/算法问题选编/测试代码/4-1.c new file mode 100644 index 0000000..806e7d3 --- /dev/null +++ b/算法问题选编/测试代码/4-1.c @@ -0,0 +1,7 @@ +#include "stdio.h" + +int main(){ + + printf("%ld",236432123443*33453098); + return 0; +} \ No newline at end of file diff --git a/算法问题选编/测试代码/5.c b/算法问题选编/测试代码/5.c new file mode 100644 index 0000000..4df163b --- /dev/null +++ b/算法问题选编/测试代码/5.c @@ -0,0 +1,25 @@ + + +#include "stdio.h" + + +/* + + 1 是第一个元素 + 序列中元素被2或3或5整除 + +*/ +unsigned long value_in_sequence(unsigned index){ + + + + +} + + +int main(){ + + + + return 0; +} \ No newline at end of file diff --git a/算法问题选编/测试代码/6.c b/算法问题选编/测试代码/6.c new file mode 100644 index 0000000..926f346 --- /dev/null +++ b/算法问题选编/测试代码/6.c @@ -0,0 +1,70 @@ + + +#include "stdio.h" + +int binary_search_first(int *a,int length,int key){ + + int low=0; + int high = length-1; + int mid = 0; + + while(low=key)//往左找 + { + high = mid; + }else{ + + low = mid+1; + } + + } + return high; + +} + +int binary_search_last(int *a,int length,int key){ + + int low = 0; + int high = length -1; + int mid = 0; + + while(low + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.a.out + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/算法问题选编/测试代码/a.out.dSYM/Contents/Resources/DWARF/a.out b/算法问题选编/测试代码/a.out.dSYM/Contents/Resources/DWARF/a.out new file mode 100644 index 0000000..b61ec8e Binary files /dev/null and b/算法问题选编/测试代码/a.out.dSYM/Contents/Resources/DWARF/a.out differ