经典算法5:用分治法实现元素选择
2018-07-20 来源:open-open
用分治法实现元素选择所用函数:
在该程序中总共用了六个函数:
1、两个数的交换函数swap( );
2、对一个数组进行划分函数partition(int a[],int p,int r,int x);
3、快速排序函数 void quicksort(int a[],int p,int r);
4、选择第k小数的函数int select(int a[],int p,int r,int k);
5、数组生成函数 void create_array( );
6、开始选择函数 void begin_select( );
一、交换函数swap( )
void __fastcall TForm1:: swap(int &a,int &b)
{ //交换两个整数a和b
int temp=a;
a=b;
b=temp;
}
二、划分函数partition(int a[],int p,int r,int x)
int __fastcall TForm1::partition(int a[],int p,int r,int x)
{ int i=p; //把一个数组下标从p到r之间的数以x为基准
int j=r+1; //划分为两个部分
while(true)
{
while(a[++i]<x);
while(a[--j]>x);
if(i>=j) break; //
swap( a[i], a[j]); //调用交换函数来交换a[i]和a[j]
}
a[p]=a[j];
a[j]=x;
return j;
标签: swap
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。