首页>>帮助中心>>香港云服务器的c++数组排序的方法是什么

香港云服务器的c++数组排序的方法是什么

2024/2/14 273次

香港云服务器的C++中有多种排序数组的方法,以下是其中的一些常见方法:

冒泡排序(Bubble Sort):通过比较相邻元素的大小,不断交换位置,将较大值逐渐“冒泡”到数组的最后。

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;

}

}

}

}

复制代码

选择排序(Selection Sort):每次从未排序的部分中找到最小(或最大)的元素,与未排序部分的第一个元素交换位置。

void selectionSort(int arr[], int n) {

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

int minIndex = i;

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

if (arr[j] < arr[minIndex]) {

minIndex = j;

}

}

int temp = arr[i];

arr[i] = arr[minIndex];

arr[minIndex] = temp;

}

}

复制代码

插入排序(Insertion Sort):将数组分为已排序部分和未排序部分,每次将未排序部分的第一个元素插入到已排序部分的正确位置。

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;

}

}

复制代码

快速排序(Quick Sort):选择一个基准元素,将数组划分成两个子数组,左边的元素小于等于基准,右边的元素大于基准,递归地对子数组进行快速排序。

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);

}

}

复制代码

这些仅仅是一些常见的排序算法,C++中还有其他排序算法的实现。根据实际情况和需求,选择合适的排序算法既能提高排序效率,也能减少资源消耗。

一诺网络香港免备案专区,提供「香港增强云服务器」和「香港特惠云服务器」两种类型的高可用弹性计算服务,搭载新一代英特尔®至强®铂金处理器,接入CN2低延时高速回国带宽线路,网络访问顺滑、流畅。机房网络架构采用了BGP协议的解决方案可提供多线路互联融合网络,使得不同网络运营商线路的用户都能通过最佳路由实现快速访问。香港云服务器低至29/月,购买链接:https://www.enuoidc.com/vps.html?typeid=2

版权声明

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们996811936@qq.com进行处理。