明天就是笔试和面试的日子
来源:互联网 发布:中国安徽网络电视台 编辑:程序博客网 时间:2024/04/27 23:31
01 二分查找
#include <iostream>using namespace std;const int N = 105;int a[N];int n;int b_search(int a[], int size, int key) { // 二分查找 int l = 0, r = size - 1; while(l <= r) { int mid = (l + r) / 2; if(key == a[mid]) return mid; if(key < a[mid]) { r = mid - 1; } else l = mid + 1; }}int main() { return 0;}02 冒泡排
#include <iostream>using namespace std;const int N = 105;void bubbleSort(int *a, int len) { int i, j; for(i = 1; i < len; i++) { // len - 1次就行 for(j = 0; j < len - i; j++) { if(a[j] > a[j+1]) { swap(a[j], a[j+1]); } } }}03 堆排
#include <iostream>using namespace std;void heapify(int a[], int i, int size) { /// 小堆化 - 递归 int ls = 2*i, rs = 2*i + 1; int large; if(ls <= size && a[ls] > a[i]) { large = ls; } else large = i; if(rs <= size && a[rs] > a[large]) { large = rs; } if(i != large) { swap(a[i], a[large]); heapify(a, large, size); }}void buildHeap(int a[], int size) { for(int i = size/2; i > 0; i--) { heapify(a, i, size); }}void heapSort(int a[], int size) { buildHeap(a, size); int len = size; for(int i = len; i >= 2; i--) { swap(a[i], a[1]); len--; heapify(a, i, len); }}int main() { cout << "Hello world!" << endl; return 0;}04 插入排
#include <iostream>using namespace std;const int N = 105;int a[N];void insertSort(int a[], int len) { int i, j, temp; for(i = 1; i < len; i++) { temp = a[i]; for(j = i - 1; j >= 0 && temp < a[j]; j--) { a[j+1] = a[j]; } a[j+1] = temp; }}int main() { return 0;}05 归并排
#include <iostream>#include <cstdio>#define mid(x) (x >> 1)using namespace std;const int N = 105;int a[N];void merge_sort(int a[], int l, int h) { if(l >= h) return; int m = mid(l + h); merge_sort(a, l, m); merge_sort(a, m+1, h); int *arr = new int[h-l+1]; int k = 0; int i = l, j = m+1; ///////////// 分别表示两个半部分的开头 while(i <= m && j <= h) { if(a[i] < a[j]) { arr[k] = a[i]; k++; i++; } else { arr[k] = a[j]; k++; j++; } } while(i <= m) { arr[k] = a[i]; k++; i++; } while(j <= h) { arr[k] = a[j]; k++; j++; } for(i = l; i <= h; i++) { a[i] = arr[i-l]; } delete []arr;}int main() { return 0;}06 快排
#include <iostream>#include <cstdio>#include <cstring>#define mid(x) (x >> 1)using namespace std;const int N = 105;void quickSort(int a[], int left, int right) { if(left < right) { int l = left, r = right, x = a[l]; while(1) { while(l < r && a[r] >= x) r--; while(l < r && a[l] <= x) l++; if(l >= r) break; swap(a[r], a[l]); } swap(a[left], a[l]); quickSort(a, left, l-1); quickSort(a, l+1, right); }}int main() { cout << "Hello world!" << endl; return 0;}07 拓扑排
#include <iostream>using namespace std;int main(){ cout << "Hello world!" << endl; return 0;}08 线段树 - 单点
#include <iostream>#define mid(x) (x>>1)using namespace std;const int N = 105;int r[N];struct Node { int a, b; int sum;}t[4*N];void makeTree(int x, int y, int num) { t[num].a = x; t[num].b = y; if(x == y) t[num].sum = r[y]; else { makeTree(x, mid(x+y), 2*num); makeTree(mid(x+y)+1, y, 2*num+1); t[num].sum = t[2*num].sum + t[2*num+1].sum; }}void add(int x, int ren, int num) { t[num].sum += ren; if(x == t[num].a && x == t[num].b) return; int m = mid(t[num].a + t[num].b); if(x <= m) { add(x, ren, 2*num); } else { add(x, ren, 2*num+1); }}int SUM = 0;void query(int x, int y, int num) { int m = mid(t[num].a + t[num].b); if(x <= t[num].a && t[num].b <= y) { SUM += t[num].sum; } else { if(y < m) { query(x, y, 2*num); } else if(x > m) { query(x, y, 2*num + 1); } else { query(x, y, 2*num); query(x, y, 2*num+1); } }}int main() { return 0;}09 树状数组
#include <iostream>using namespace std;const int N = 105;int C[N];int n;int lowbit(int x) { return x & (-x);}void add(int i, int x) { while(i <= n) { C[i] += x; i += lowbit(i); }}int main() { memset(C, 0, sizeof(C)); return 0;}10 字典树
#include <iostream>#include <string>using namespace std;const int N = 105;const int kind = 26;struct Node { int num; bool tail; Node* next[kind]; public : Node() : num(1), tail(0) { memset(next, 0, sizeof(next)); }};string s1, s2;void insert(Node* root, string s) { Node* p = root; int i = 0, index = 0; while(s[i]) { index = s[i] - 'a'; if(p->next[index] == NULL) { p->next[index] = new Node(); } else { p->next[index]->num++; } i++; p = p->next[index]; } p->tail = true;}int main() { Node* root = new Node(); while(getline(cin, s1) && !s1.empty()) { insert(root, s1); } return 0;}11 KMP
#include <iostream>#include <string>#include <algorithm>using namespace std;const int N = 105;string s;string t;int next[N];void get_next(string t) { int len = t.length(); if(len < 1) return; int i = 0, j = -1; next[0] = 0; while(i < len - 1) { if(j == -1 || t[i] == t[j]) { i++, j++, next[i] = j; } else { j = next[j]; } }}int main() { s = "abcabcabd"; t = "abcabd"; get_next(t); return 0;}12 最短路 - 迪杰斯特拉
#include <iostream>using namespace std;const int INF = 0x7fffffff;const int N = 105;int data[N][N];int lowc[N];int vis[N];int n, m;void djst(int p) { /// 单源最短路 int i, j; memset(vis, 0, sizeof(vis)); memset(lowc, 0, sizeof(lowc)); for(i = 1; i <= n; i++) { lowc[i] = data[p][i]; } vis[p] = 1; for(i = 1; i < n; i++) { int minc = INF, c = 0; for(j = 1; j <= n; j++) { if(!vis[j] && lowc[j] < minc) { minc = lowc[j]; c = j; } } if(c == 1) break; vis[c] = 1; for(j = 1; j <= n; j++) { if(!vis[j] && data[c][j] < INF && minc + data[c][j] < lowc[j]) { lowc[j] = minc + data[c][j]; } } } cout << lowc[1] << endl;}int main() { int i, j; for(i = 1; i <= n; i++) { for(j = 1; j <= n; j++) { data[i][j] = INF; } } return 0;}
- 明天就是笔试和面试的日子
- 明天的明天就是明天
- 明天就是20号了,对于你来说是黑屏的日子吗?
- 小米的笔试和面试
- 某公司的笔试和面试
- 今天我做的就是为了明天
- 明天就是新的一周了
- 明天就是我的毕业典礼
- 记录下明天的面试
- 纪念找工作面试的日子
- 今天就是今天,明天就是明天
- 英特尔intel的面试和笔试
- 深信服的笔试和面试
- 写在悲剧的笔试和面试后
- 笔试和面试中常见的智力题
- 一些java笔试和面试的知识点
- 关于招聘的面试和笔试
- 红星美凯龙的笔试和面试
- 从Class.forName想到的……
- 好书
- QDataWidgetMapper 学习
- 第一节xml课上笔记
- 扫自己只盲 1
- 明天就是笔试和面试的日子
- java 反射机制中classloader的关系
- linux下firefox购买火车票
- ToolTip 的使用
- 深入linux内核架构读书笔记-进程管理和调度
- Linux串口—struct termios结构体
- 读JDK中Thread类源码有感
- 572 - Oil Deposits
- cmd命令操作windows