
算法导论学习日记
GreenPill
鹅厂打工人.如果你吹牛可以@我,想内推也可以@我
展开
-
算法导论学习日记(8)霍纳规则
引用一下百度关于霍纳规则的解释用来简化朴素多项式的求值,在中国叫秦九韶算法。霍纳规则是一种将一元n次多项式的求值问题转化为n个一次式的算法。其大大简化了计算过程,即使在现代,利用计算机解决多项式的求值问题时,霍纳规则依然是最优的算法规则。霍纳规则是采用最少的乘法运算策略,求多项式A(x) = anxn+ an-1xn-1+...+ a1x + a0在x0处的值,原创 2016-12-20 20:38:34 · 1283 阅读 · 0 评论 -
算法导论学习日记(7)冒泡排序的递归实现
一开始思考这个问题的时候冒泡排序是不能用递归实现的,因为他需要对整个数组进行操作,而根据分治法,必须要有分解,解决和合并三个部分,所以分解数组缩小规模看起来似乎是不能行的。后来想了想,发现削减一层循环,做成递归就好。所以默默的说一句,这个递归就是非递归方式的 外层循环啊。#include <iostream>using namespace std;void BubbleSort(int *a,int原创 2016-12-19 21:18:50 · 833 阅读 · 0 评论 -
算法导论学习日记(6)冒泡排序
#include using namespace std;void BubbleSort(int *a,int n){ int i=0,j=0; for(i=0;i<n;i++) { for(j=n;j>i;j--) { if(a[j]<a[j+1]) {原创 2016-12-19 20:41:22 · 299 阅读 · 0 评论 -
算法导论学习日记(5)二分法查找
#include using namespace std;int BinarySearch(int *a,int p,int r,int v){ if(p<r) { int q=(p+r)/2; //重复证明不存在要找的解 if(q==p||q==r) { return -1;原创 2016-12-19 20:16:21 · 360 阅读 · 0 评论 -
算法导论学习日记(4)插入排序的递归版本
#include using namespace std;void Insertionsort(int *a,int m);void Insertion(int *a,int m);void Insertionsort(int *a,int n){ if(n>0) { Insertionsort(a,n-1);原创 2016-12-19 20:13:23 · 296 阅读 · 0 评论 -
算法导论学习日记(3)--合并排序
#include <iostream>using namespace std;void Merge(int *a,int p,int q,int r){ int j=q-p+1; int k=r-q; int i=0; int b[j+1],c[k+1]; //ÉÚ±øÊý b[j+1]=c[k+1]=2147483647; for(i=0;原创 2016-12-18 10:15:25 · 280 阅读 · 0 评论 -
算法导论学习日记(2)--选择排序
#include <iostream>using namespace std;void selectionsort(int* a,int n){ int j=0,i=0; for(j=0;j<n;j++) { i=j; while(i<n) { if(a[j]>a[i]) {原创 2016-12-18 10:13:44 · 273 阅读 · 0 评论 -
算法导论学习日记(1)--插入排序
#include <iostream>int* Insertionsort(int *a,int n){ int* k; int j=2,key=0,i=0; for(j=2;j<n;j++) { key=a[j]; i=j-1; while(i>0&&a[i]>key) { a原创 2016-12-18 10:12:05 · 268 阅读 · 0 评论