21xrx.com
2024-09-20 06:00:34 Friday
登录
文章检索 我的文章 写文章
C++整数排序算法
2023-07-13 01:21:34 深夜i     --     --
C++排序 整数排序 排序算法 C++算法 数值排序

C++是一种广泛使用的编程语言,其应用范围涵盖从应用程序到操作系统的各个领域。在C++中,排序算法是非常重要的一部分,它可以被用来解决诸如搜索、统计等很多问题。

整数排序算法是指将一组整数按照递增或递减的顺序重新排列的算法。这些整数可以包含重复的值,也可以提供不同的排序方式,例如快速排序、选择排序等等。在C++中,我们可以使用很多种算法来执行此类排序任务,其中包括C++ STL中的sort()及其衍生函数,如stable_sort()等。

下面将介绍两种最常用的整数排序算法:

1、选择排序

选择排序算法是一种直观的排序算法,它按照递增的顺序将元素重复放置在一个数组中。它的时间复杂度为O(n^2),因此对于大型数据集可能需要较长的时间来执行。以下是使用选择排序算法实现的代码示例:

void selectionSort(int arr[], int n)

{

  int i, j, min_idx;

  for (i = 0; i < n-1; i++)

  {

    min_idx = i;

    for (j = i+1; j < n; j++)

    if (arr[j] < arr[min_idx])

      min_idx = j;

    swap(&arr[min_idx], &arr[i]);

  }

}

2、快速排序

快速排序算法是一种高效的排序算法,它的平均时间复杂度为O(n log n),但最坏情况下的时间复杂度为O(n^2),因此需要采取一些优化措施。以下是使用快速排序算法实现的代码示例:

void quickSort(int arr[], int low, int high)

{

  if (low < high)

  {

    int pi = partition(arr, low, high);

    quickSort(arr, low, pi - 1);

    quickSort(arr, pi + 1, high);

  }

}

int partition (int arr[], int low, int high)

{

  int pivot = arr[high];  // 基准点

  int i = (low - 1); 

  for (int j = low; j <= high- 1; j++)

  {

    if (arr[j] <= pivot)

    {

      i++;  

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

    }

  }

  swap(&arr[i + 1], &arr[high]);

  return (i + 1);

}

综上所述,整数排序算法是C++编程中一个需要熟练掌握的基础算法。选择排序和快速排序算法都是很好的选择,但根据具体的情况选择最适合的算法非常重要。通过深入理解这些算法,我们可以更好地处理各种常见的排序问题。

  
  

评论区

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