个人经常使用刷题网站: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