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

avatar
作者
猴君
阅读量:2

C++中有多种排序数组的方法,以下是其中的一些常见方法:

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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!