源自挑战程序设计竞赛以及其他博客。
平时常用的头文件。bits不敢滥用。
#include#include #include #include #include #include #include #include #include #include #include #include
1.插入排序
1 void insertionsort(int* a,int n) 2 { 3 int v,j; 4 for(int i=1;i=0&&a[j]>v) 9 {10 a[j+1]=a[j];11 j--;12 }13 a[j+1]=v;14 trace(a,n);15 }16 }
2.冒泡排序
sw代表swap的次数。
1 int bubblesort(int *a,int n) 2 { 3 int sw=0; 4 bool flag=1; 5 for(int i=0;flag;i++) 6 { 7 flag=0; 8 for(int j=n-1;j>=i+1;j--) 9 {10 if(a[j]
。。。
3.双向链表
struct Node{ int key; Node *next,*prev;};Node *nil;Node *listSearch(int key){ Node *cur=nil->next; while(cur!=nil&&cur->key!=key) { cur=cur->next; } return cur;}void init(){ nil=(Node*) malloc(sizeof(Node)); nil->next=nil; nil->prev=nil;}void printList(){ Node *cur=nil->next; int isf=0; while(1){ if(cur==nil) break; if(isf++>0) printf(" "); printf("%d",cur->key); cur=cur->next; } printf("\n");}void deleteNode(Node *t){ if(t==nil){ return; } t->prev->next=t->next; t->next->prev=t->prev; free(t);}void deleteFirst(){ deleteNode(nil->next);}void deleteLast(){ deleteNode(nil->prev);}void deleteKey(int key){ deleteNode(listSearch(key));}void insert(int key){ Node *x=(Node *)malloc(sizeof(Node)); x->key=key; x->next=nil->next; nil->next->prev=x; nil->next=x; x->prev=nil;}int main(){ int key,n,i,size=0,np=0,nd=0; char com[21]; scanf("%d",&n); init(); for(int i=0;i6){ if(com[6]=='F') deleteFirst(); else if(com[6]=='L'); deleteLast(); } else{ deleteKey(key); nd++; } size--; } } printList(); return 0;}
4.pair ,make pair 的使用(ALDS1——3——B Queue)
1 int main() 2 { 3 int n,q,t; 4 string name; 5 queue> Q; 6 7 cin>>n>>q; 8 9 for(int i=0;i >name>>t;12 Q.push(make_pair(name,t));13 }14 15 pair u;16 int elaps=0,a;17 18 while(!Q.empty()){19 u=Q.front();20 Q.pop();21 22 a=min(u.second,q);23 u.second-=a;24 25 elaps+=a;26 if(u.second>0){27 Q.push(u);28 }29 else{30 cout< <<" "< <
5.vector的操作
void print(vectorV){ for(int i=0;i V; V.push_back(0.1); V.push_back(0.2); V.push_back(0.3); V[2]=0.4; print(V); V.insert(V.begin()+2,0.8); print(V); V.erase(V.begin()+1); print(V); V.push_back(0.9); print(V); return 0;}
6.list操作
。
1 int main() 2 { 3 int q,x; 4 char com[20]; 5 6 list v; 7 scanf("%d",&q); 8 9 for(int i=0;i