--
一、快速排序
void qsort(int x,int y) // 待排序的数据存放在
a[1]..a[n]
数组中
常用算法经典代码( C++ 版)
{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 n-1 for(int j=1;j<=n-i;j++) // 相邻的两两比较