117.info
人生若只如初见

c++排序算法怎么应用

C++中有许多排序算法可以应用,以下是几种常见的排序算法及其应用示例:

  1. 冒泡排序:通过依次比较相邻元素并交换顺序,将最大或最小的元素逐渐“冒泡”到数组的一端。
#include 
using namespace std;
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]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr)/sizeof(arr[0]);
bubbleSort(arr, n);
cout << "排序后的数组:";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
  1. 插入排序:将待排序的元素从未排序序列中逐个插入到已排序序列中的正确位置。
#include 
using namespace std;
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 = j - 1;
}
arr[j+1] = key;
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr)/sizeof(arr[0]);
insertionSort(arr, n);
cout << "排序后的数组:";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
  1. 快速排序:选择一个基准元素,将小于基准的元素放在左边,大于基准的元素放在右边,然后递归地对左右两个子数组进行排序。
#include 
using namespace std;
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++;
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
int temp = arr[i+1];
arr[i+1] = arr[high];
arr[high] = temp;
return (i + 1);
}
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 main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr)/sizeof(arr[0]);
quickSort(arr, 0, n-1);
cout << "排序后的数组:";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}

这只是几种排序算法的简单示例,实际应用中可能需要根据具体情况选择合适的算法,并进行适当的优化。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe1d3AzsLBAdeBVY.html

推荐文章

  • c# winform组件 怎样集成

    在C# WinForms应用程序中集成组件通常涉及以下几个步骤: 添加引用: 首先,确保你已经安装了所需的组件。例如,如果你想要集成一个第三方库,你需要将该库的DLL...

  • c# winform组件 怎样提高效率

    要提高C# WinForms应用程序的效率,可以从多个方面入手,包括优化绘图过程、使用异步操作、合理设置控件属性等。以下是一些具体的优化策略:
    优化绘图过程 ...

  • c# winform组件 怎样自定义

    在C#中,要自定义WinForms组件,您需要创建一个继承自现有控件的新类,并重写其构造函数、事件处理程序和其他相关方法。以下是一个简单的示例,说明如何创建一个...

  • c# winform组件 怎样选择合适

    在C# WinForms应用程序开发中,选择合适的组件对于构建高效、用户友好的界面至关重要。以下是一些选择合适组件的建议:
    控件选择 根据需求选择:选择控件时...

  • c++数组排序函数怎么使用

    C++中可以使用标准库中的sort函数来对数组进行排序。该函数位于algorithm头文件中。
    下面是一个示例程序,展示了如何使用sort函数对数组进行排序:
    #i...

  • android如何改项目名

    要更改Android项目的名称,可以按照以下步骤操作: 在Android Studio中,打开你的项目。 在Project面板中,右键点击你的项目文件夹,选择"Refactor" -> “Rename...

  • android studio怎么创建签名文件

    要在Android Studio中创建签名文件,您可以按照以下步骤操作: 打开Android Studio并打开您的项目。 在顶部菜单栏中,选择 “Build” > “Generate Signed Bundl...

  • pascal和delphi有什么区别

    Pascal和Delphi都是编程语言,但它们有以下一些区别: 历史:Pascal是一种由Niklaus Wirth于1970年开发的编程语言,而Delphi是由Borland公司于1995年开发的基于P...