求一个基于C++的快速排序程序

来源:百度知道 编辑:UC知道 时间:2024/05/07 00:57:33
要求:(1)建立包含30个数据的序列(数据元素的值由自己设定);
(2)完成快速排序运算的程序;
(3)与数据结构相关。
(4)不用QuickSort函数。

// 快速排序
// 使用递归调用来实现快速排序
// 10/21/2007
// Author: eman lee
/*Quick Sort */
#include <stdio.h>

void quick_sort(int data[], int low, int high)
{
int i, j, pivot;
if (low < high)
{
pivot=data[low];
i=low;
j=high;

while(i<j)
{
while (i<j && data[j]>=pivot)
j--;
if(i<j)
data[i++]=data[j]; //将比枢轴记录小的记录移到低端

while (i<j && data[i]<=pivot)
i++;
if(i<j)
data[j--]=data[i]; //将比枢轴记录大的记录移到高端
}

data[i]=pivot; //枢轴记录移到最终位置