快速排序,包括排序标签

#include "stdafx.h"
#include <iostream>
using namespace std;

void QuickSort(int* values,int* labels,const int lo,const int hi);
int _tmain(int argc, _TCHAR* argv[])
{   
	int lab[10]={7,6,5,4,10,9,8,2,1,3};
	int sor[10]={1,2,3,4,5,6,7,8,9,10};
	QuickSort(lab,sor,0,9);
	for(int i=0; i<10; i++) 
	{
		cout<<lab[i]<<": "<<sor[i]<<endl;
	}
	return 0;
}

void QuickSort(int* values,int* labels,const int lo,const int hi)
{
    int i=lo, j=hi;
	int v; int l;
    int x = values[(lo+hi)/2];

    do
    {    
        while (values[i]<x) i++; 
        while (values[j]>x) j--;
        if (i<=j)
        {
            v=values[i]; values[i]=values[j]; values[j]=v;
			l=labels[i]; labels[i]=labels[j]; labels[j]=l;
            i++; j--;
        }
    } while (i<=j);

    if (lo<j) QuickSort(values,labels,lo, j);
    if (i<hi) QuickSort(values,labels,i, hi);
}

你可能感兴趣的:(快速排序,包括排序标签)