21xrx.com
2024-05-20 13:30:59 Monday
登录
文章检索 我的文章 写文章
C++实现快速排序
2023-07-08 16:18:35 深夜i     --     --
C++ 排序 快速排序 算法 分治

快速排序是一种高效的排序算法,也是C++中常用的排序算法之一。该算法基于分治策略,将一个未排序的序列分成两个子序列,其中一个子序列中的所有元素都比另一个子序列中的元素小。然后递归地对这两个子序列进行排序,直到整个序列有序。以下是C++实现快速排序的简单代码示例。


#include <iostream>

#include <vector>

using namespace std;

void quickSort(vector<int> &arr, int left, int right)

{

  if(left < right){

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

    int i = left - 1;

    int j = right + 1;

    while(true){

      do i++; while(arr[i] < pivot);

      do j--; while(arr[j] > pivot);

      if(i >= j) break;

      swap(arr[i], arr[j]);

    }

    quickSort(arr, left, j);

    quickSort(arr, j+1, right);

  }

}

int main()

{

  vector<int> arr = 7;

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

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

    cout << arr[i] << " ";

  }

  cout << endl;

  return 0;

}

在这个代码示例中,我们使用了一个叫做“pivot”的值作为分治策略的基准。在每一次递归中,我们都选取一个pivot值,将序列分成两个子序列,并进行比较和交换,以达到子序列有序的目的。在排序完成后,我们可以从第一个元素开始遍历整个有序序列,输出每个元素的结果。

总而言之,快速排序算法是C++中常用的排序算法之一。它的实现简单、高效,并且在处理大规模数据排序的问题时非常有用。

  
  

评论区

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