📜  c++ 降序排序 - C++ (1)

📅  最后修改于: 2023-12-03 14:59:49.687000             🧑  作者: Mango

C++ 降序排序 - C++

排序是计算机编程中的一个常见问题。C++ 是一种流行的编程语言,深受程序员喜爱,它提供了多种排序算法来帮助开发者对数据进行排序。在本文中,我们将介绍如何使用 C++ 来实现降序排序,并提供一些示例代码作为参考。

降序排序算法

在 C++ 中,我们可以使用以下排序算法来实现降序排序:

  1. 冒泡排序(Bubble Sort):通过多次交换相邻的元素,将最大的元素逐渐移动到序列的末尾。
  2. 选择排序(Selection Sort):每次从未排序的序列中选择最大的元素,并将其放置在已排序序列的起始位置。
  3. 插入排序(Insertion Sort):将每个元素插入到已排序序列的正确位置,以构建最终的有序序列。
  4. 快速排序(Quick Sort):通过选择一个基准元素,将序列分为两个子序列,然后对子序列进行递归排序。

以下是这些算法的 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]) {
                std::swap(arr[j], arr[j+1]);
            }
        }
    }
}
选择排序
void selectionSort(int arr[], int n) {
    for (int i = 0; i < n-1; i++) {
        int maxIndex = i;
        for (int j = i+1; j < n; j++) {
            if (arr[j] > arr[maxIndex]) {
                maxIndex = j;
            }
        }
        std::swap(arr[i], arr[maxIndex]);
    }
}
插入排序
void insertionSort(int arr[], int n) {
    for (int i = 1; i < n; i++) {
        int key = arr[i];
        int j = i - 1;
        while (j >= 0 && arr[j] < key) {
            arr[j+1] = arr[j];
            j--;
        }
        arr[j+1] = key;
    }
}
快速排序
int partition(int arr[], int low, int high) {
    int pivot = arr[low];
    int left = low;
    int right = high;
    
    while (left < right) {
        while (arr[left] >= pivot && left < right) {
            left++;
        }
        while (arr[right] < pivot && left < right) {
            right--;
        }
        if (left < right) {
            std::swap(arr[left], arr[right]);
        }
    }
    
    arr[low] = arr[right];
    arr[right] = pivot;
    
    return right;
}

void quickSort(int arr[], int low, int high) {
    if (low < high) {
        int pivotIdx = partition(arr, low, high);
        quickSort(arr, low, pivotIdx - 1);
        quickSort(arr, pivotIdx + 1, high);
    }
}

以上是一些常用的降序排序算法的 C++ 实现。你可以根据需要选择适合你的应用程序的算法。希望这些示例代码能够帮助你更好地理解和应用排序算法。