快速排序(使用C++实现)
快速排序是经典的排序算法之一,基于分治的思想来实现。它的核心思想是将一个数组不断地拆分为两个部分,直到每个部分只剩下一个元素,最后再将这些部分合并在一起。
快速排序的实现主要包括以下步骤:
- 选择一个基准值,一般是选取当前数组的第一个元素。
- 将数组中小于基准值的元素放到左边,大于基准值的元素放到右边。
- 递归处理左半部分和右半部分,直到每个部分只剩下一个元素。
下面是快速排序的完整C++代码实现:
void QuickSort(int arr[], int left, int right)
{
if (left >= right)
return;
int i = left, j = right, temp;
int key = arr[left];
while (i < j) {
// 从右往左找第一个小于key的数
while (i < j && arr[j] >= key)
j--;
// 把该数放到key的左边
arr[i] = arr[j];
// 从左往右找第一个大于key的数
while (i < j &