c++数组排序的方法是什么

   2024-11-05 3650
核心提示:C++中有多种排序数组的方法,以下是其中的一些常见方法:冒泡排序(Bubble Sort):通过比较相邻元素的大小,不断交换位置,将较

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++中还有其他排序算法的实现。根据实际情况和需求,选择合适的排序算法既能提高排序效率,也能减少资源消耗。

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号