#include <iostream>
#include <fstream>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define CLOCKS_PER_SEC ((clock_t)1000)
using namespace std;
void swap_(int &a, int &b)
{
int temp = a;
a = b;
b = temp;
}
int Partition_(int m, int p, int* A)
{
int low, v, high;
v = A[m];
low = m;
high = p;
do
{
do
{
low++;
}while(low<p && A[low] <= v);
while(high>m && A[high] >= v)
{
high = high - 1;
}
if(low < high)
{
swap_(A[low], A[high]);
}
else
{
break;
}
}while(1);
swap_(A[high],A[m]);
return high;
}
int QuickSort(int p, int q, int* A)
{
int j;
if(p < q)
{
j=Partition_(p, q, A);
QuickSort(p, j-1, A);
QuickSort(j+1, q, A);
}
return 0;
}
int main()
{
clock_t start, finish;
double duration;
start = clock();
ifstream in("array9.txt");
ofstream out("result9.txt");
int count_;
in >> count_;
int A[count_];
for(int i = 0; i < count_; i++)
{
in >> A[i];
}
QuickSort(0, count_ - 1, A);
finish = clock();
duration = (double)(finish - start)/CLOCKS_PER_SEC;
out << "time cost:" << duration << "*****";
cout << "time cost:" << duration << "*****";
for(int i = 0; i < count_ - 1; i++)
{
out << A[i] << ",";
}
out << A[count_ - 1];
cout << "The project is finished!" << endl;
return 0;
}
快速排序代码
最新推荐文章于 2023-08-27 19:25:13 发布