天勤数据结构代码——递归
生活随笔
收集整理的這篇文章主要介紹了
天勤数据结构代码——递归
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
求A的二次方跟的遞歸函數 (遞歸算法和非遞歸算法) ?遞歸式已知
float Sqrt_Al(float A, float p, float e) { ?//遞歸if (fabs(p*p - A) < e) {return p;}else {return Sqrt_Al(A, (p + A / p) / 2, e);} }float Sqrt_A2(float A, float p, float e) { ?//非遞歸while (fabs(p*p - A) >= e) {p = (p + A / p) / 2;}return p; }設計一個遞歸算法,求n個不同字符的全排列
void perm2(char str[], int k, int n) {int i, j;char temp;if (k == 0) {for (j = 0; j <= n - 1; j++) {cout << str[j];}}else {for (int i = 0; i <= k; ++i) {temp = str[k]; ? //str k 和 str i 交換?str[k] = str[i];str[i] = temp;perm2(str, k - 1, n);temp = str[i]; ? //str k 和 str i 交換?str[i] = str[k];str[k] = temp;}} }設有一元素為整數的線性表L,存放在一維數組A[0,n-1]中,設計一個算法,以A[n-1]為參考量,?將數組分為兩個部分,左部分小于A[n-1],右部分大于A[n-1]。 A[n-1]位于這兩部分之間,要求結果仍存放在數組A中 ?(快速排序!第一趟)
void divide(int A[], int n) {int temp;int i = 0, j = n - 1;temp = A[i]; ?//首尾互換A[i] = A[j];A[j] = temp;temp = A[i]; //新的首 給temp/*開始算法*/while (i != j) {while (j > i&&A[j] > temp) { ?//從右往左掃描--j;}if (i < j) {A[i] = A[j];++i;}?while (i < j&&A[i] < temp) { ?//從左往右掃描++i;}if (i < j) {A[j] = A[i];--j;}}A[i] = temp; ?//放到最終位置 }?
總結
以上是生活随笔為你收集整理的天勤数据结构代码——递归的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flash CS4学习笔记1
- 下一篇: 遥感影像处理——遥感影像处理全流程