21xrx.com
2024-11-22 09:32:40 Friday
登录
文章检索 我的文章 写文章
C++如何对数字进行排序
2023-07-05 02:00:14 深夜i     --     --
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++都可以通过简单的代码实现。希望以上内容能为您提供帮助。

  
  

评论区

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