高效算法设计
来源:互联网 发布:便民网络测速 编辑:程序博客网 时间:2024/05/17 08:35
归并排序:
#include<bits/stdc++.h>using namespace std;int A[100];int T[100];int cnt;void merge_sort(int *A, int x, int y, int *T){ if(y-x > 1) { int m = x + (y-x)/2; int p = x, q = m, i = x; merge_sort(A, x, m, T); merge_sort(A, m, y, T); while(p < m || q < y) { if(q >= y || (p < m && A[p] <= A[q])) //后半截数组为空或者前半截数组的 T[i++] = A[p++]; else { T[i++] = A[q++]; cnt += (m-p); } } for(int i = x; i < y; i++) A[i] = T[i]; }}int main(){ int n; cin >> n; for(int i = 0; i < n; i++) cin >> A[i]; cnt = 0; merge_sort(A, 0, n, T); for(int i = 0; i < n; i++) cout << A[i] << " "; cout << endl; cout << cnt << endl; return 0;}二分查找:
#include<bits/stdc++.h>using namespace std;int A[100];int baserch(int *A, int x, int y, int v){ int m; while(x < y) { m = (x+y)/2; if(A[m] == v) return m; else if(A[m] > v) y = m; else x = m+1; } return -1;}int main(){ int n; int v; cin >> n >> v; for(int i = 1; i < n; i++) cin >> A[i]; sort(A, A+n); int xx = baserch(A, 0, n, v); cout << xx << endl; return 0;}
阅读全文
0 0
- 高效算法设计
- 第八章 高效算法设计
- 【子矩阵】【高效算法设计】
- 高效算法设计专项:UVa 10125
- 高效算法设计专项:UVa 10391
- 高效算法设计专项:UVa 10810
- 高效算法设计专项:UVa 10730
- 高效算法设计专项:UVa 10535
- 高效算法设计专项:LA 2689
- 高效算法设计专项:UVa 11054
- 高效算法设计专项:UVa 11572
- 高效算法设计专项:UVa 10827
- 高效算法设计专项:LA 4726
- 高效算法设计专项:LA 2963
- 高效算法设计专项:LA 4356
- 高效算法设计专项:UVa 10691
- [高效算法设计]Calculator conundrum Uva 11549
- 【高效算法设计】UVa120 Stack of Flapjacks
- MyAdapter
- mysql保存微信昵称特殊字符
- 整理收集的一些常用java工具类
- Linux中dd命令的使用
- ThinkPHP5.0商城项目目录搭建(菜鸟)
- 高效算法设计
- python 输出encoding编码格式
- 二分查找(C语言实现)
- css-当图片宽度大于父元素宽度时如何使图片居中显示
- 搬瓦工/BandwagonHost vps选择技巧
- 机器视觉大牛
- sed命令该如何使用
- 使用异部类get网络获取json
- VS2010暂停编译界面