欢迎来到天天文库
浏览记录
ID:36027611
大小:347.00 KB
页数:137页
时间:2019-04-28
《acm基本算法大全》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一章排序、顺序统计与解题的基本策略1.1计数排序//计数排序.cpp:Definestheentrypointfortheconsoleapplication.////计数排序,输入数字,在0~100之间,数字个数一般远多于100#include"stdafx.h"#includeusingnamespacestd;intmain(intargc,char*argv[]){intn;while(cin>>n){intcount[101]={0},arrayA[10000],arrayB[10000],i;for(i=0;i2、>>arrayA[i];count[arrayA[i]]++;}for(i=1;i<101;i++)count[i]+=count[i-1];for(i=0;i3、iostream>#include#includeusingnamespacestd;typedefstruct{intx,y;}Node;boolcmpfn(Nodea,Nodeb){returna.x>n,i=0;i>array[i].x>>4、array[i].y;sort(array,array+n,cmpfn);//qsort(array,n,sizeof(array[i]),Cmp);for(i=0;i#include#includeusingna5、mespacestd;//从小到大排序boolcmpfn(inta,intb){returnab;}*/intmain(intargc,char*argv[]){inti,n,array[100];for(cin>>n,i=0;i>array[i];stable_sort(array,array+n,cmpfn);for(i=0;i6、pp:Definestheentrypointfortheconsoleapplication./*堆排序排成完全二叉树,满足一下性质:1.如果某节点有孩子,则根节点的值都小于孩子节点的值。我们称之为小堆根2.如果某节点有孩子,则根节点的值都大于孩子节点的值。我们称之为大堆根以小堆根为例,根节点是最小值,次小值在根节点的两个孩子中调整建堆的时间复杂度为W(lbn)小根堆*/137#include"stdafx.h"#includeusingnamespacestd;voidDownHeap(intheap[],intr,intlen){inti,7、s=heap[r];i=r<<1;while(i<=len){if(i+1<=len&&heap[i+1]>1;while(i>0&&s>1;}heap[r]=s;}voidMakeHeap(intheap[],intlen){for(in
2、>>arrayA[i];count[arrayA[i]]++;}for(i=1;i<101;i++)count[i]+=count[i-1];for(i=0;i3、iostream>#include#includeusingnamespacestd;typedefstruct{intx,y;}Node;boolcmpfn(Nodea,Nodeb){returna.x>n,i=0;i>array[i].x>>4、array[i].y;sort(array,array+n,cmpfn);//qsort(array,n,sizeof(array[i]),Cmp);for(i=0;i#include#includeusingna5、mespacestd;//从小到大排序boolcmpfn(inta,intb){returnab;}*/intmain(intargc,char*argv[]){inti,n,array[100];for(cin>>n,i=0;i>array[i];stable_sort(array,array+n,cmpfn);for(i=0;i6、pp:Definestheentrypointfortheconsoleapplication./*堆排序排成完全二叉树,满足一下性质:1.如果某节点有孩子,则根节点的值都小于孩子节点的值。我们称之为小堆根2.如果某节点有孩子,则根节点的值都大于孩子节点的值。我们称之为大堆根以小堆根为例,根节点是最小值,次小值在根节点的两个孩子中调整建堆的时间复杂度为W(lbn)小根堆*/137#include"stdafx.h"#includeusingnamespacestd;voidDownHeap(intheap[],intr,intlen){inti,7、s=heap[r];i=r<<1;while(i<=len){if(i+1<=len&&heap[i+1]>1;while(i>0&&s>1;}heap[r]=s;}voidMakeHeap(intheap[],intlen){for(in
3、iostream>#include#includeusingnamespacestd;typedefstruct{intx,y;}Node;boolcmpfn(Nodea,Nodeb){returna.x>n,i=0;i>array[i].x>>
4、array[i].y;sort(array,array+n,cmpfn);//qsort(array,n,sizeof(array[i]),Cmp);for(i=0;i#include#includeusingna
5、mespacestd;//从小到大排序boolcmpfn(inta,intb){returnab;}*/intmain(intargc,char*argv[]){inti,n,array[100];for(cin>>n,i=0;i>array[i];stable_sort(array,array+n,cmpfn);for(i=0;i6、pp:Definestheentrypointfortheconsoleapplication./*堆排序排成完全二叉树,满足一下性质:1.如果某节点有孩子,则根节点的值都小于孩子节点的值。我们称之为小堆根2.如果某节点有孩子,则根节点的值都大于孩子节点的值。我们称之为大堆根以小堆根为例,根节点是最小值,次小值在根节点的两个孩子中调整建堆的时间复杂度为W(lbn)小根堆*/137#include"stdafx.h"#includeusingnamespacestd;voidDownHeap(intheap[],intr,intlen){inti,7、s=heap[r];i=r<<1;while(i<=len){if(i+1<=len&&heap[i+1]>1;while(i>0&&s>1;}heap[r]=s;}voidMakeHeap(intheap[],intlen){for(in
6、pp:Definestheentrypointfortheconsoleapplication./*堆排序排成完全二叉树,满足一下性质:1.如果某节点有孩子,则根节点的值都小于孩子节点的值。我们称之为小堆根2.如果某节点有孩子,则根节点的值都大于孩子节点的值。我们称之为大堆根以小堆根为例,根节点是最小值,次小值在根节点的两个孩子中调整建堆的时间复杂度为W(lbn)小根堆*/137#include"stdafx.h"#includeusingnamespacestd;voidDownHeap(intheap[],intr,intlen){inti,
7、s=heap[r];i=r<<1;while(i<=len){if(i+1<=len&&heap[i+1]>1;while(i>0&&s>1;}heap[r]=s;}voidMakeHeap(intheap[],intlen){for(in
此文档下载收益归作者所有