Chinaunix首页 | 论坛 | 博客
  • 博客访问: 107991
  • 博文数量: 41
  • 博客积分: 984
  • 博客等级: 军士长
  • 技术积分: 430
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-12 09:57
文章分类

全部博文(41)

文章存档

2010年(41)

分类:

2010-06-25 17:57:11

/*

*文件描述:这是一个快速排序

*作者:作者

*最后修改时间:

*版本:1.0

*/

#include

using namespace std;

const int len = 13;

int partitions( int *arr, int iLow, int iHigh );

void quickSort( int *arr, int iLow, int iHigh );

void display( int *arr, int length );

int main( int argc, char **argv )

{

int arr[len] = {

20,11,12,5,

6,13,8,9,14,

7,33,22,100

};

display( arr, len );

quickSort( arr, 0, len-1 );

display( arr, len );

return 0;

}

int partitions( int *arr, int iLow, int iHigh )

{

int key = arr[iLow];

while ( iLow < iHigh )

{

while ( ( arr[iHigh] >= key ) && ( iLow < iHigh) )

{

iHigh--;

}

arr[iLow] = arr[iHigh];

while( ( arr[iLow] <= key ) && ( iLow < iHigh) )

{

iLow++;

}

arr[iHigh] = arr[iLow];

}

arr[iLow] = key;

return iLow;

}

void quickSort( int *arr, int iLow, int iHigh )

{

int keyPos;

if ( iLow < iHigh )

{

keyPos = partitions( arr, iLow, iHigh );

quickSort ( arr, iLow, keyPos-1 );

quickSort ( arr, keyPos+1, iHigh );

}

}

void display( int *arr, int length )

{

for ( int i = 0; i < length; i++ )

{

cout<

}

cout<

}

阅读(960) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~