//made by syx
//2023年7月13日 21:05:27
////迴圈賽日程表
//快速排序
//合併排序
//棋盤覆蓋(有bug)
//求大數乘積(10進製,但有丟位)
//二分搜尋技術
//整數劃分
//階乘
/*//迴圈賽日程表
#include
#include
using namespace std;
const int n = 100;
int a[n][n];
int k;
void copy(int n);
void tourna(int n);
int main()
tourna(n/2);
copy(n);
}void copy(int n)}}
*//*
//迴圈賽日程表
#include
void table(int k,int (*a)[128])
m *= 2;}}
int main()
;table(4,a);
int _i = 0, _j = 0;
for(_i=0; _i<9; ++_i)
printf("\n\n");
return 0;}*/
/*//快速排序
#include
inline void swap(int &x,int &y)
int partition(int *a,int left,int right)
swap(a[left],a[j]);
return j;
}void qsort(int *a,int left,int right)
}int main()
;int i = 0;
for( i=0; i<=9; ++i)
printf("%d ",a[i]);
printf("a \n");
qsort(a,0,9);
for( i=0; i<=9; ++i)
printf("%d ",a[i]);
printf("a \n\n");
return 0;}*/
/*//合併排序
#include
void copy(int *a,int *b,int left,int right)
}void merge(int *a,int *b,int left,int m,int right)
if(i>m)
while( j<=right )
b[left++] = a[j++];
else
while( i<=m )
b[left++] = a[i++];
void mergesort(int *a,int left,int right)
;if(leftint main()
;int b[10] = ;
int i = 0;
for( i=0; i<=9; ++i)
printf("%d ",a[i]);
printf("a \n");
mergesort(a,0,9);
for( i=0; i<=9; ++i)
printf("%d ",a[i]);
printf("a \n\n");
return 0;}*/
/*//棋盤覆蓋(bug)
#include
int tile = 10;
int board[64][64];
void chessboard(int tr,int tc,int dr, int dc,int size)//以0開始,tr是x(自上到下),tc是y(自左到右),後同
//左下角
if(dr>=tr+s && dc=tr+s && dc>=tc+s)
chessboard(tr+s,tc+s,dr,dc,s);
else
}int main()
for( i=0; i<=size; ++i)
for( j=0; j<=size;++j)
board[i][j] = 0;
int dr,dc;
scanf("%d%d",&dr,&dc);
board[dr-1][dc-1] = 1;
chessboard(0,0,dr-1,dc-1,size);
for( i=0; ireturn 0;}*/
//棋盤覆蓋
/*#include "iostream.h"
#include "iomanip.h"
#define n 8
class qipan
if(dr>=tr+s&&dc=tr+s&&dc>=tc+s)
chessboard(tr+s,tc+s,dr,dc,s);
else
}public:
int tile,tr,tc,dr,dc,size;
int board[n+1][n+1];
};void main()
q.board[2][2]=-1;
q.chessboard(1,1,2,2,n);
for(int i=1;i<=n;i++)
return result;
}int main()
return -1;
}int main()
int num = 0,result = 0;
scanf("%d",&num);
result = binaryserach(a,100,num);
printf("%d\n",result);
return 0;}*/
/*//整數劃分問題
#include
//q(n,n) 就是求n的劃分數!
int q (int n,int m) //求在正整數n的所有不同劃分中,將最大加數n1不大於m的劃分個數記住q(n,m)
int main()
*//*
//1 求階乘
#include
int jiecheng(int n)
int main()
return 0;}*/
演算法經典題目
1.在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。思路 因為這是乙個從左到右遞增和從上到下遞增的二維陣列,例如下 1,2,3,4 2,3,4,5 3,4,5...
遞迴演算法經典例項 演算法 遞迴演算法
遞迴現象 老和尚講故事 自己呼叫自己 兩面鏡子互相映像 兩者相互呼叫 演算法思想 把規模大的問題轉化為規模小的相似的子問題來解決。在函式實現時,因為解決大問題的方法和解決小問題的方法往往是同乙個方法,所以就產生了函式自己呼叫自己的情況。遞迴函式 內部操作直接或間接地呼叫了自己的函式。遞迴函式兩大要素...
php遞迴演算法經典例項
遞迴函式為自呼叫函式,在函式體內直接或間接自己呼叫自己,但需要設定自呼叫的條件,若滿足條件,則呼叫函式本身,若不滿足則終止本函式的自呼叫,然後把目前流程的主控權交回給上一層函式來執行,可能這樣給大家講解,還是很難明白,直接上例子 function test n else echo n.test 2 ...