21xrx.com
2024-12-22 23:00:24 Sunday
登录
文章检索 我的文章 写文章
C++如何将一组数按照从小到大排序
2023-07-04 09:02:19 深夜i     --     --
C++ 排序 数组 升序 从小到大

C++作为一种高级编程语言,拥有许多排序算法,其中最常用的算法是冒泡排序和快速排序。本文将介绍如何使用这两种算法将一组数按照从小到大排序。

冒泡排序是一种基本排序算法,其原理是将相邻的两个数进行比较,若前一个数大于后一个数,则交换两个数的位置。重复这个过程,直到所有数都排好序。以下是C++代码实现:


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]) {

        swap(arr[j], arr[j + 1]);

      }

    }

  }

}

快速排序是一种高效的排序算法,其原理是通过一次排序将数组分成两部分,一部分是小于pivot的数,另一部分是大于等于pivot的数。如此递归进行直到所有数排好序。以下是C++代码实现:


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

      swap(arr[i], arr[j]);

    }

  }

  swap(arr[i + 1], arr[high]);

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

  }

}

以上两种算法分别是冒泡排序和快速排序,它们都可以快速、简便地将一组数按照从小到大排序。在使用时根据实际需要选择合适的算法即可。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复