QuickSort模板


#include

using namespace std;

struct node

         int index;

         char name[20];

};

node data[100];

template

void QuickSort(T* Array,int left,int right,bool (*com)(T* a,T* b))

         int low,high;

         T key;

         if(left>=right) return;

         low=left,high=right;

         key=Array[left];

         while(low

         {

                   while(low

                   Array[low]=Array[high];

                   while(low

                   Array[high]=Array[low];

         }

         Array[low]=key;

         QuickSort(Array,left,low-1,com);

         QuickSort(Array,low+1,right,com);

bool com(int* a,int* b)

         return *a>=*b;

bool com1(node* a,node* b)

         return a->index> b->index;

int main()

         int n,i;

         while(scanf("%d",&n)!=EOF)

         {

                   for(i=0;i

                   QuickSort(data,0,n-1,com1);

                   for(i=0;i

                   printf("\n");

         }

         return 0;