個人經常使用刷題網站:http://218.5.5.242:9018/JudgeOnline/html
選擇排序(selection sort)ide
1 void selection(int n,int* a){ 2 for (int i = 0;i < n;i++){ 3 for (int j = i + 1;j < n;j++){ 4 if (a[i] > a[j]){ 5 swap(a[i],a[j]); 6 } 7 } 8 } 9 }
冒泡排序(bubble sort)網站
void bubble(int n,int* a){ for (int i = 0;i < n;i++){ for (int j = 0;j < n - 1;j++){ if (a[j] > a[j + 1]){ swap(a[j],a[j+1]); } } } }
枚舉查找spa
bool search(int n,int* a,int x){ for (int i = 0;i < n;i++){ if (a[i] == x){ return true; } } return false; }
二分查找(binary search)code
bool binary_search(int n,int* a,int x){ int mid,r,l; r = 0; l = n - 1; while (r < l){ mid = (r + l) / 2; if (x == mid) return true; if (x > mid) l = mid; if (x < mid) r = mid; } return false; }
深度優先搜索(DFS)求連通塊htm
void dfs(int x,int y,int id){ // id是連通塊記號 if (是否越界) return; if (搜索過或不是指定符號) return; 標記已搜索; 搜索下一步; }
這只是一個歸納,詳細代碼樣例參見C++算法代碼——細胞問題blog
判斷質數排序
1 bool prime(int n){ 2 for (int i = 2;i <= sqrt(n);i++){ 3 if (n % i == 0) return false; 4 } 5 return true; 6 }
1 #define _for_1(i,a,b) for(i = (a);i <= (b);i++) 2 #define _for_2(i,a,b) for(i = (a);i >= (b);i--) 3 4 // 能夠這樣應用:_for_1(i,1,n)
>g++ 文件名.cpp -o 文件名
>./文件名
代碼做者親測,做者將持續更新……get