21xrx.com
2024-12-22 21:28:38 Sunday
登录
文章检索 我的文章 写文章
C++数字按大小排序方法
2023-06-26 21:54:43 深夜i     --     --
C++ 数字 大小 排序 方法

C++是一种广泛使用的编程语言,其强大的功能和灵活的语法使其成为了计算机科学领域的重要一部分。在C++中,排序是一个非常重要的操作,因为它可以帮助我们更好地管理和处理数据。

在本文中,我们将介绍一些C++数字按大小排序的方法。

1. 冒泡排序

冒泡排序是一种简单的排序算法。它比较相邻的两个元素并交换它们的位置,直到所有元素都被排好序。

下面是冒泡排序的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]) {

        int temp = arr[j];

        arr[j] = arr[j + 1];

        arr[j + 1] = temp;

      }

    }

  }

}

2. 快速排序

快速排序是一种分治算法。它将数组分成两个子数组,其中一个数组的所有元素都比另一个数组的所有元素小。然后,它对这两个子数组递归地应用相同的算法,直到排序完成。

下面是快速排序的C++代码:


int partition(int arr[], int low, int high) {

  int pivot = arr[high];

  int i = low - 1;

  for (int j = low; j < high; 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 pivotIndex = partition(arr, low, high);

    quickSort(arr, low, pivotIndex - 1);

    quickSort(arr, pivotIndex + 1, high);

  }

}

3. 归并排序

归并排序是一种分治算法。它将数组一分为二,其中一个数组的元素都比另一个数组的元素小。然后,它将这两个数组分别归并成一个有序数组。

下面是归并排序的C++代码:


void merge(int arr[], int left, int mid, int right) {

  int n1 = mid - left + 1;

  int n2 = right - mid;

  int L[n1], R[n2];

  for (int i = 0; i < n1; i++) {

    L[i] = arr[left + i];

  }

  for (int j = 0; j < n2; j++) {

    R[j] = arr[mid + 1 + j];

  }

  int i = 0, j = 0, k = left;

  while (i < n1 && j < n2) {

    if (L[i] <= R[j]) {

      arr[k] = L[i];

      i++;

    } else {

      arr[k] = R[j];

      j++;

    }

    k++;

  }

  while (i < n1) {

    arr[k] = L[i];

    i++;

    k++;

  }

  while (j < n2) {

    arr[k] = R[j];

    j++;

    k++;

  }

}

void mergeSort(int arr[], int left, int right) {

  if (left < right) {

    int mid = left + (right - left) / 2;

    mergeSort(arr, left, mid);

    mergeSort(arr, mid + 1, right);

    merge(arr, left, mid, right);

  }

}

总结

以上是C++数字按大小排序的三个方法,它们分别是冒泡排序、快速排序和归并排序。它们都是非常有效的排序算法,可以在不同的场合下使用。对于大型数据集,快速排序和归并排序通常比冒泡排序更加适合。

  
  

评论区

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