21xrx.com
2025-06-06 17:29:04 Friday
文章检索 我的文章 写文章
C++ 数组排序教程
2023-07-12 03:08:37 深夜i     9     0
C++ 数组 排序 教程

C++ 是一种面向对象的编程语言,广泛用于软件开发。C++ 中数组是一个非常强大的数据结构,它可以存储一组相同类型的数据。在实际开发中,我们经常需要对数组进行排序,本教程将介绍在 C++ 中如何进行数组排序。

1. 冒泡排序

冒泡排序是一种基本的排序算法,其核心思想是每次将相邻两个元素进行比较,如果顺序不对就进行交换,直到所有元素都按照从小到大的顺序排列为止。

下面是冒泡排序的 C++ 代码:

void bubbleSort(int arr[], int n) {
  for (int i = 0; i < n - 1; i++) {
    for (int j = 0; j < n - i - 1; j++) {
      if (arr[j] > arr[j + 1]) {
        swap(arr[j], arr[j + 1]);
      }
    }
  }
}

2. 选择排序

选择排序是一种简单的排序算法,在每次循环中选出最小的元素并放到前面的有序区间中,直到所有元素排序完毕。

下面是选择排序的 C++ 代码:

void selectionSort(int arr[], int n) {
  int minIndex;
  for (int i = 0; i < n - 1; i++) {
    minIndex = i;
    for (int j = i + 1; j < n; j++) {
      if (arr[j] < arr[minIndex])
        minIndex = j;
      
    }
    swap(arr[i], arr[minIndex]);
  }
}

3. 插入排序

插入排序是一种简单直观的排序算法,其核心思想是将未排序的元素逐个插入已排序的数组中,直到所有元素都按照从小到大的顺序排列为止。

下面是插入排序的 C++ 代码:

void insertionSort(int arr[], int n) {
  int j, temp;
  for (int i = 1; i < n; i++) {
    j = i - 1;
    temp = arr[i];
    while (j >= 0 && arr[j] > temp) {
      arr[j + 1] = arr[j];
      j--;
    }
    arr[j + 1] = temp;
  }
}

4. 快速排序

快速排序是一种常见的排序算法,其核心思想是基于分治策略,在每次循环中选取一个基准数,然后将数组分成两部分,一部分比基准数小,一部分比基准数大,再对两部分分别进行快速排序。

下面是快速排序的 C++ 代码:

void quickSort(int arr[], int left, int right) {
  int i = left, j = right, 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);
}

以上就是 C++ 数组排序的几种方法。在实际应用中,我们需要根据实际情况选择不同的排序算法来实现对数组的快速高效排序。

  
  

评论区