随笔分类 -  算法

摘要:#include using namespace std; //用归并算法合并两个数组 //时间复杂度是O(n),空间复杂度为O(n) //该算法的关键点是:把两个数组看成是独立的,分开索引,也就是index_1,index_2两个变量的变化(对个人而言) int main() { int arr1[4] = { 3, 5, 8, 11 }; int arr2[7] = { ... 阅读全文
posted @ 2017-12-19 17:56 P_langen 阅读(858) 评论(0) 推荐(0)
摘要:#include using namespace std; //计算fibonacci数 //方法一:二分递归法,时间复杂度为O(2^n),额外空间复杂度为常数 int RecursiveFibonacci(int n) { return (n < 2) ? n : RecursiveFibonacci(n - 1)+RecursiveFibonacci(n-2); } //方法... 阅读全文
posted @ 2017-12-06 18:17 P_langen 阅读(518) 评论(0) 推荐(0)
摘要:#include using namespace std; //数组求和 //方法一:时间复杂度为O(n),额外空间为(n) int ArraySum(int arr[],int n) { int sum = 0; for (int i = 0; i > 1; return ArraySum(arr, low, mid) + ArraySum(arr, m... 阅读全文
posted @ 2017-12-06 16:53 P_langen 阅读(8824) 评论(0) 推荐(1)
摘要:#include using namespace std; //计算2的N次幂 //一般方法,时间复杂度为2^n __int64 pow2(int n) { __int64 result = 1; while (n--) { result > 1)) > 1)); } int main() { __int64 sum = 0; su... 阅读全文
posted @ 2017-12-05 15:17 P_langen 阅读(2591) 评论(0) 推荐(0)
摘要:一、归并排序思路 大体思路就是将数据在中位数的位置分成两个区间,一直重复,直到最后节点只有一个数 二、程序 阅读全文
posted @ 2017-11-24 12:45 P_langen 阅读(196) 评论(0) 推荐(0)
摘要:一. 快速排序思路 1. 快速排序首先在所需要排序的数据中随机地选出一个数作为阀值,并把这个数(也就是这个阀值)与原来数据中最后的一个数交换,到了这步,数据中最后的一个数就是这个阀值了。 2. 然后从头开始,将数据一个一个地与这个阀值作比较,小于这个阀值的数,放在左边,等于这个阀值的数不用理,大于这 阅读全文
posted @ 2017-11-22 14:39 P_langen 阅读(151) 评论(0) 推荐(0)
摘要:本实验主要用二分法来查找两个数组中不同的元素 本实验有两个不足: 第一没法知道返回的指针数组的大小,导致用了 这样的表述 第二在子函数中不能用 来求数组的长度 例如: 这样写得出来的A的长度只有1. 欢迎大神赐教,O(∩_∩)O谢谢。 优化: 方法2:顺序查找 阅读全文
posted @ 2017-11-18 18:32 P_langen 阅读(561) 评论(0) 推荐(0)
摘要:转载:http://blog.csdn.net/sunshangjin/article/details/40296357 想起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qsort,总算把自己解脱了~ std::sort()函数的功能很强大,且可以对类,结构体等元 阅读全文
posted @ 2017-11-17 22:44 P_langen 阅读(220) 评论(0) 推荐(0)
摘要:#include #include #include #include #include //出入栈头文件 using namespace std; void swap(int arr[], int i, int j); void Swap(int arr[], int i, int j); void bubbleSort(int arr[], int size); void inser... 阅读全文
posted @ 2017-11-17 15:39 P_langen 阅读(304) 评论(0) 推荐(0)