21xrx.com
2025-03-31 04:39:02 Monday
文章检索 我的文章 写文章
C++数组从小到大排序方法
2023-06-22 12:11:10 深夜i     --     --
C++ 数组 排序 从小到大 方法

C++是一种通用的计算机编程语言,其支持各种数据结构包括数组。在C++编程中,经常需要对数组进行排序。本文将讲解如何使用C++进行从小到大排序。

1. 冒泡排序

冒泡排序是一种简单的排序算法,它通过不断地交换相邻的元素来排序。它的时间复杂度为 O(n^2),效率较低,但对于小规模数据排序可以使用。

代码实现如下:

void bubbleSort(int* array, int size){
  bool flag = true;
  for(int i=0;i<size-1&&flag;i++){
    flag = false;
    for(int j=0;j<size-i-1;j++){
      if(array[j]>array[j+1]){
        int temp = array[j];
        array[j] = array[j+1];
        array[j+1] = temp;
        flag = true;
      }
    }
  }
}

2. 插入排序

插入排序是一种简单的排序算法,它将数组分成已排序和未排序两个部分,每次将未排序部分的第一个元素插入到已排序部分,并保持已排序部分的有序性。它的时间复杂度也是 O(n^2),但是在最好情况下,时间复杂度可以达到 O(n),效率较高。

代码实现如下:

void insertionSort(int* array, int size){
  for(int i=1;i<size;i++){
    int temp = array[i];
    int j = i-1;
    while(j>=0&&temp<array[j]){
      array[j+1] = array[j];
      j--;
    }
    array[j+1] = temp;
  }
}

3. 快速排序

快速排序是一种高效的排序算法,它通过递归的方式将数组不断地分成两个部分,并将其中一个部分中比另外一个部分中所有元素小的元素和比另外一个部分中所有元素大的元素分别放在两个部分中。它的时间复杂度是 O(n log n),效率较高。

代码实现如下:

void quickSort(int* array, int left, int right){
  if(left>=right) return;
  int pivot = array[left];
  int i = left, j = right;
  while(i<j){
    while(i<j&&array[j]>=pivot) j--;
    if(i<j) array[i++] = array[j];
    while(i<j&&array[i]<pivot) i++;
    if(i<j) array[j--] = array[i];
  }
  array[i] = pivot;
  quickSort(array, left, i-1);
  quickSort(array, i+1, right);
}

综上所述,以上是三种常用的C++数组排序算法,根据具体的情况选择合适的排序算法会使程序更加高效。

  
  

评论区