C++常用经典算法及其实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常用算法经典代码(C++版)
一、快速排序
void qsort(int x,int y) //待排序的数据存放在a[1]..a[n]数组中
{int h=x,r=y;
int m=a[(x+y)>>1]; //取中间的那个位置的值
while(h {while (a[h] while (a[r]>m) r--; //比中间那个位置的值大,循环直到找一个比中间那个值小的 if(h<=r) {int temp=a[h];//如果此时h<=r,交换a[h]和a[r] a[h]=a[r]; a[r]=temp; h++;r--; //这两句必不可少哦 } } if(r>x) qsort(x,r);//注意此处,尾指针跑到前半部分了 if(h } 调用:qsort(1,n)即可实现数组a中元素有序。适用于n比较大的排序 二、冒泡排序 void paopao(void) //待排序的数据存放在a[1]..a[n]数组中 {for(int i=1;i for(int j=1;j<=n-i;j++) //相邻的两两比较 if(a[j] } 或者 void paopao(void) //待排序的数据存放在a[1]..a[n]数组中