21xrx.com
2025-03-29 09:59:02 Saturday
文章检索 我的文章 写文章
C++如何对数字进行排序
2023-07-05 02:00:14 深夜i     19     0
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++代码演示选择排序的实现。

void selectSort(int arr[], int n){
  int min, temp;
  for(int i = 0; i < n-1; i++){
    min = i;
    for(int j = i+1; j < n; j++){  // 找到最小值的下标
      if(arr[j] < arr[min])
        min = j;
    }
    if(min != i){          // 如果最小值不是当前位置的数,交换位置
      temp = arr[i];
      arr[i] = arr[min];
      arr[min] = temp;
    }
  }
}

3.快速排序

快速排序是一种高效的排序算法,其基本思想是通过设置一个基准值,将序列分为左右两部分,使得左边部分都小于等于基准值,右边部分都大于等于基准值,然后分别递归排序左右两部分。下面是一段C++代码演示快速排序的实现。

void quickSort(int arr[], int left, int right){
  if(left >= right)          // 递归退出条件
    return;
  int pivot = arr[left], i = left, j = right;
  while(i < j){
    while(i < j && arr[j] >= pivot) // 从右往左找到第一个小于pivot的数
      j--;
    if(i < j)
      arr[i++] = arr[j];     // 找到后移到左边
    while(i < j && arr[i] < pivot) // 从左往右找到第一个大于等于pivot的数
      i++;
    if(i < j)
      arr[j--] = arr[i];     // 找到后移到右边
  }
  arr[i] = pivot;           // 将基准值放到正确的位置
  quickSort(arr, left, i-1);     // 递归排序左半部分
  quickSort(arr, i+1, right);     // 递归排序右半部分
}

以上就是针对数字排序的三种常见算法,只需要根据实际需求选择适合的算法即可。无论是冒泡排序、选择排序还是快速排序,C++都可以通过简单的代码实现。希望以上内容能为您提供帮助。

  
  

评论区

请求出错了