摘要: 插入排序法 所谓插入排序法乃是将一个数目插入该占据的位置。 假设我们输入的是 “5,1,4,2,3” 我们从第二个数字开始,这个数字是1,我们的任务只要看看1有没有正确的位置,我们的做法是和这个数字左边的数字来比,因此我们比较1和5,1比5小,所以我们... 阅读全文
posted @ 2017-03-11 06:37 乐天的java 阅读(41) 评论(0) 推荐(0)
摘要: 冒泡排序优化 冒泡排序思想 内层循环数字两两比较,并交换,最后一个数字成为最大数字 外层循环控制循环次数,不在将最后一位参与交换; 冒泡改进 若内层循环没有进行过一次交换,说明数组已经有序,直接break; 不需要再进行循环; #includeusi... 阅读全文
posted @ 2017-03-10 23:00 乐天的java 阅读(33) 评论(0) 推荐(0)
摘要: 二分查找法源代码: #includeusing namespace std;int binarySearch(int arr[],int len,int goal){ int high = len - 1; int low = 0; int mid = 0; ... 阅读全文
posted @ 2017-03-10 22:54 乐天的java 阅读(58) 评论(0) 推荐(0)
摘要: 选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。 下面,以对 3 2 4 1 进行选择排序说明排序过程,使用min_... 阅读全文
posted @ 2017-03-10 22:42 乐天的java 阅读(80) 评论(0) 推荐(0)
摘要: 递归 #includeusing namespace std;void PrintfNumber(char num[]){ bool isBegin0 = true; int nlength = strlen(num); for (int i = 0; i >... 阅读全文
posted @ 2017-03-08 21:21 乐天的java 阅读(41) 评论(0) 推荐(0)
摘要: 来自剑指offer #includeusing namespace std;double power(int b, int e){ if (e >1); res *= res; if (e & 0x1) { res = res*b; } return re... 阅读全文
posted @ 2017-03-07 23:33 乐天的java 阅读(67) 评论(0) 推荐(0)
摘要: 位运算实现加法,模拟十进制加法,首先位数相加, 如19 + 12 = 21 再加上进位 9+2进一位 21 + 10 = 31 #includeusing namespace std;int add(int a, int b){ if (b == 0) { ... 阅读全文
posted @ 2017-03-07 23:31 乐天的java 阅读(63) 评论(0) 推荐(0)
摘要: 将一串数字逆转 输入123456 输出654321 循环解法 #includeusing namespace std;int reverse(int a){ int temp = 0; int i; while (a) { i = a % 10; temp... 阅读全文
posted @ 2017-03-07 23:29 乐天的java 阅读(79) 评论(0) 推荐(0)
摘要: 有n个台阶,一次走一步或者两步或者n步,有多少种可能 ? 同台阶问题 f(n)=f(n-1)+f(n-2)+...f(1) f(n-1)=f(n-2)+f(n-3)+....f(1) 所以f(n)=f(n-1)+f(n-1)=2*f(n-1) #incl... 阅读全文
posted @ 2017-03-07 23:25 乐天的java 阅读(74) 评论(0) 推荐(0)
摘要: 腾讯面试题,有50个台阶,一次走一步或者两步,有多少种可能 ? 假设n台阶有f(n)中可能的走法,则n-1台阶有f(n-1)中走法,n-2台阶有f(n-2)走法,第n节台阶,有两种走法可能是一步跨上,也可能是2步跨上,所以f(n)=f(n-1)+f... 阅读全文
posted @ 2017-03-07 23:22 乐天的java 阅读(88) 评论(0) 推荐(0)