📅  最后修改于: 2023-12-03 14:59:49.687000             🧑  作者: Mango
排序是计算机编程中的一个常见问题。C++ 是一种流行的编程语言,深受程序员喜爱,它提供了多种排序算法来帮助开发者对数据进行排序。在本文中,我们将介绍如何使用 C++ 来实现降序排序,并提供一些示例代码作为参考。
在 C++ 中,我们可以使用以下排序算法来实现降序排序:
以下是这些算法的 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++ 实现。你可以根据需要选择适合你的应用程序的算法。希望这些示例代码能够帮助你更好地理解和应用排序算法。