快排程序

#include<iostream>
#include<fstream>
using namespace std;

ifstream fin("Quicksort.in");
ofstream fout("Quicksort.out");

int w[10000];

void Quick_sort(int i,int j)
{
     int a,b,c;
     a=i;
     b=j;
     c=w[i+rand()%(j-i+1)];   //c语言rand()函数的用法是  i+rand()%(j-i+1) 随机取i到j中的数 调用stdlib.h
     while(a<=b)
     {
      while(w[a]<c) a++;
      while(w[b]>c) b--;
      if(a<=b)
      {
       w[0]=w[a];
       w[a]=w[b];
       w[b]=w[0];
       a++;b--;
              }
         
                }
     if(a<j) Quick_sort(a,j);
     if(b>i) Quick_sort(i,b);  
    
     }


int main()
{
    int i,j,n;
    fin>>n;
    for(i=1;i<=n;i++)
    fin>>w[i];
    Quick_sort(1,n);
    for(i=1;i<=n;i++)
    fout<<w[i]<<"    ";
   
    }

posted on 2011-12-07 19:59  怡红公子  阅读(502)  评论(0编辑  收藏  举报