21xrx.com
2024-06-03 05:25:16 Monday
登录
文章检索 我的文章 写文章
C++快速排序代码的实际运用
2023-06-24 09:08:16 深夜i     --     --
C++ 快速排序 代码实现 实际应用 排序算法

C++快速排序是一种常见的排序算法,使用它可以快速、简单地将一个无序数据集合排序。与其他排序算法相比,快速排序的优势在于它很快,能处理大量的数据。

在C++编程中,快速排序被广泛运用于处理大规模的数据排序问题。在实际应用中,如大数据中心、金融交易系统、医学检测系统、人脸识别系统等领域都需要大数据量的排序操作。因此,使用快速排序是一个比较理想的解决方案。

下面以一个排序10000个整数的任务为例,来演示C++快速排序代码的实际运用。首先,编写一个快速排序的函数,并将函数导入项目中的头文件中。


#include <iostream>

using namespace std;

void quickSort(int arr[], int left, int right) {

  int i = left, j = right;

  int tmp;

  int pivot = arr[(left + right) / 2];

  while (i <= j) {

    while (arr[i] < pivot)

      i++;

    while (arr[j] > pivot)

      j--;

    if (i <= j) {

      tmp = arr[i];

      arr[i] = arr[j];

      arr[j] = tmp;

      i++;

      j--;

    }

  };

  if (left < j)

    quickSort(arr, left, j);

  if (i < right)

    quickSort(arr, i, right);

}

接下来,编写主函数,读入10000个整数,调用快速排序函数进行排序,并输出排序后的结果。


#include <iostream>

#include <fstream>

#include <string>

#include <vector>

#include <ctime>

#include "QuickSort.h"

using namespace std;

int main(int argc, char* argv[]) {

  vector<int> nums;

  ifstream fin(argv[1]);

  int number;

  while (fin >> number)

    nums.push_back(number);

  int* arr = new int[nums.size()];

  for (int i = 0; i < nums.size(); i++)

    arr[i] = nums[i];

  clock_t start = clock();

  quickSort(arr, 0, nums.size() - 1);

  clock_t end = clock();

  ofstream fout("sorted_numbers.txt");

  for (int i = 0; i < nums.size(); i++)

    fout << arr[i] << ' ';

  cout << "Sorting complete!" << endl;

  cout << "Time taken: " << double(end - start) / CLOCKS_PER_SEC << " seconds" << endl;

  delete[] arr;

  return 0;

}

在主函数中,我们首先读入一个文本文件,其中包含10000个整数。然后,将整数存储在一个动态分配的整数数组中,并调用快速排序函数对其进行排序。最后,将排序后的结果输出到另一个文本文件中,并输出排序所用时间。

通过这个简单的示例,我们可以看到C++快速排序代码的实际运用,也可以看到它在大数据排序问题中的优越性。C++快速排序代码不仅高效,而且易于实现和理解,因此是处理大规模数据排序问题的一种主要选择。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复