oracle数据库网站开发,小型网站建设的经验,邯郸吧,深圳网络推广市场数据结构定义
算法的定义
什么是好算法#xff1f;
空间复杂度
时间复杂度
例子1
打印1到N之间的正整数 有递归和循环两种方法实现。 但是在数字变大后#xff0c;递归的方法会导致内存占用过多而崩溃。 而循环则不会
例子2 写程序给定多项式在X处的值
从里往外算的算…数据结构定义
算法的定义
什么是好算法
空间复杂度
时间复杂度
例子1
打印1到N之间的正整数 有递归和循环两种方法实现。 但是在数字变大后递归的方法会导致内存占用过多而崩溃。 而循环则不会
例子2 写程序给定多项式在X处的值
从里往外算的算法不断提出一个X然后从里往外算。
ElementType Max( ElementType S[], int N )
{int i 0;float max S[0];for (i 1; i N; i){if (max S[i]){max S[i];}}return max;
}从外往里算复杂度高o(n的平方)。
例子3 给定N个整数的序列求连续的最大子序列的值
1.三层for循环暴力
int MaxSubsequSum(int A[], int N)
{int i 0;int j 0;int k 0;int ThisSum 0;int MaxSum 0;for (i 0; i N; i){for (j i; j N; j){ThisSum 0;for (k j; k j; k){ThisSum A[i];if (ThisSum MaxSum){MaxSum ThisSum;}}}}
}2.两层for循环暴力
int MaxSubseqSum(int A[], int N)
{int i 0;int j 0;int k 0;int ThisSum 0;int MaxSum 0;for (i 0; i N; i){ThisSum 0;for (j i; j N; j){ThisSum A[i];if (ThisSum MaxSum){MaxSum ThisSum;}}}
}3.分而治之递归解决
4.在线处理
每输入一个数据都能即时处理 在任何一个地方中止输入都能正确给出当前的解。
int MaxSubseqSum(int A[], int N)
{int i 0;int MaxSum 0;int ThisSum 0;for (i 0; i N; i){ThisSum A[i];if (ThisSum MaxSum){MaxSum ThisSum;}else if (ThisSum 0){ThisSum 0;}}return MaxSum;
}