计算快排算法存取数据的时间

//快排算法
#include
#include
#include 
void quickSort(int arr[],int low,int high)
{
    if(high < low ) return;
    int i = low,j = high,temp = arr[i];
    while(i < j)
    {
        while(temp < arr[j] && i < j)    j--;
        if(i < j)    arr[i++] = arr[j];
        while(temp > arr[i] && i < j)    i++;
        if(i < j)    arr[j--] = arr[i];
    }
    arr[i] = temp;
    quickSort(arr,low,i-1);
    quickSort(arr,i+1,high);
}
int main()
{
    time_t start;
    time_t end;
    int *a = (int *)malloc(10000000*sizeof(int));
    FILE* fpread;
    fpread = fopen("D:\\快排数据\\新建文件夹\\10000000.txt", "r");
    if (fpread == NULL)
    {
        printf("file is error.");
        return -1;
    }
        for (int j = 0; j < 10000000; j++)
        {
            fscanf(fpread, "%d", &a[j]);
        }
    fclose(fpread);
    fpread = fopen("D:\\快排数据\\新建文件夹\\F.txt", "w");
    start=clock();
    quickSort(a,0,10000000-1);
    end=clock();
    printf("排序完成!用时 %f s\n",(double)(end-start)/CLOCKS_PER_SEC);
    for(int i =0;i<10000000;i++)
    {
        fprintf(fpread,"%d ",a[i]);
    }
    fclose(fpread);
    free(a); 
    return 0;
}

通过快排算法和文件读取及时间的函数的综合使用,可以完成从10000~10000000的数据进行读取存入并计算所需要消耗的时间。

你可能感兴趣的:(c++)