21xrx.com
2024-12-22 21:27:45 Sunday
登录
文章检索 我的文章 写文章
C++实现快速排序算法代码
2023-07-04 17:47:50 深夜i     --     --
C++ 快速排序算法 代码

快速排序是一种高效的排序算法,在大多数情况下它是优于其他常见的排序算法的。C++作为一种高效的编程语言,配合快速排序算法,可以让我们更加方便地进行排序操作。下面就是一个基于C++的快速排序算法代码实现。

//快速排序函数

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

{

  if (left < right)

  {

    int i = left, j = right;

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

    while (i <= j)

    {

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

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

      if (i <= j)

      {

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

        i++;

        j--;

      }

    }

    if (left < j)

      quickSort(arr, left, j);

    if (i < right)

      quickSort(arr, i, right);

  }

}

int main()

{

  int n = 10;

  int arr[n] = 19;

  cout << "初始数组:\n";

  for (int i = 0; i < n; i++)

  {

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

  }

  cout << endl;

  quickSort(arr, 0, n - 1);

  cout << "排序后数组:\n";

  for (int i = 0; i < n; i++)

  {

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

  }

  cout << endl;

  return 0;

}

在上述代码中,我们定义了一个快速排序函数 quickSort,它是由递归调用实现的。我们传入 i 和 j 作为左右指针,然后计算出中间点的位置 pivot。这段代码中使用了一个 while 循环,由两个 while 循环嵌套组成。它们分别负责处理左侧和右侧的指针,将它们移到它们所指向的元素本应该的位置上。

在 while 循环内部,我们检查当前 i 或 j 是否已经移到了正确的位置上,如果他们还没有移到正确的位置上,那么我们就执行一个 swap 交换,将它们所指向的元素交换位置。

当所有的元素顺序都排列正确以后,快速排序函数会停止递归调用,它就会输出排序后的数组。对于本例中的数组,输出结果如下:

初始数组:

28 13 41 32 16 11 25 37 19 12

排序后数组:

11 12 13 16 19 25 28 32 37 41

可以看出,我们利用基于C++的快速排序算法代码实现可以快速,高效地对数组进行排序,可以极大地提高工作效率。

  
  

评论区

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