21xrx.com
2024-05-20 20:17:48 Monday
登录
文章检索 我的文章 写文章
C++快速排序函数:简单高效的排序算法
2023-07-04 19:23:40 深夜i     --     --
C++ 快速排序 简单高效 排序算法 函数

C++是一种高效的编程语言,它的快速排序函数是一种简单而高效的排序算法。由于快速排序算法的速度快,它经常用来对大量数据进行排序。它的优点在于它的时间复杂度是O(nlogn),这比其他常用的排序算法如冒泡排序和插入排序要快很多。

快速排序函数的核心是分而治之的策略。它首先选择一个基准元素(通常是数组的中间元素),将序列中所有小于该元素的数移到它的左边,将所有大于该元素的数移到它的右边。这个过程称为分区或划分。然后,递归地对左边和右边的序列进行快速排序。

快速排序函数有许多实现方法,但它们都遵循同样的基本算法。以下是一个快速排序函数的示例:


void quickSort(int *arr, int left, int right) {

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

  int i = left, j = right;

  while (i <= j) {

    while (arr[i] < pivot) {

      i++;

    }

    while (arr[j] > pivot)

      j--;

    

    if (i <= j) {

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

      i++;

      j--;

    }

  }

  if (left < j) {

    quickSort(arr, left, j);

  }

  if (i < right) {

    quickSort(arr, i, right);

  }

}

在这个函数中,变量left和right是序列的左右索引,pivot是基准元素。函数使用while循环来找到左右两边需要交换的元素,随后将它们互换。最后,将序列递归地分成左右两部分,直到排序完成。

快速排序算法在实践中的效率很高,因为它可以在较短的时间内对大量数据进行排序。尽管该算法有时会退化为最坏的情况,但这并不会影响它的效率。因此,快速排序函数是C++程序员常用的排序函数之一。

  
  

评论区

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