21xrx.com
2024-12-23 00:46:36 Monday
登录
文章检索 我的文章 写文章
C++如何进行数字排序
2023-06-30 10:16:43 深夜i     --     --
C++ 数字 排序 算法 STL容器

C++是一种强大的编程语言,在该语言中,数字排序是常见的问题之一。在C++中,我们可以使用多种方法来对数字进行排序。下面将介绍几种排序方法和示例代码。

一、快速排序法

快速排序法是一种高效的排序方法,它通过递归将数字划分为两个部分,最后将它们合并。下面是一个使用快速排序法对数字进行排序的示例代码:


#include<iostream>

using namespace std;

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

  int i = left , j = right;

  int temp;

  int pivot = arr[(left + right) / 2];

  while (i <= j){

    while (arr[i] < pivot)

      i++;

    while (arr[j] > pivot)

      j--;

    if (i <= j){

      temp = arr[i];

      arr[i] = arr[j];

      arr[j] = temp;

      i++;

      j--;

    }

  }

  if (left < j)

    quicksort(arr, left, j);

  if (i < right)

    quicksort(arr, i, right);

}

int main(){

  int arr[] = 10;

  int n = sizeof(arr) / sizeof(arr[0]);

  quicksort(arr, 0, n - 1);

  cout << "排序后的数组为: \n";

  for (int i = 0; i < n; i++)

    cout << arr[i] << " ";

  return 0;

}

二、选择排序法

选择排序法是一种比较简单的排序方法,它分别选出未排序部分中的最小值,然后和已排序部分的最后一位互换位置。下面是一个使用选择排序法对数字进行排序的示例代码:


#include<iostream>

using namespace std;

void selectionsort(int arr[], int n){

  int i, j, min_idx;

  for (i = 0; i < n - 1; i++){

    min_idx = i;

    for (j = i + 1; j < n; j++)

      if (arr[j] < arr[min_idx])

        min_idx = j;

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

  }

}

int main(){

  int arr[] = 25;

  int n = sizeof(arr) / sizeof(arr[0]);

  selectionsort(arr, n);

  cout << "排序后的数组为: \n";

  for (int i = 0; i < n; i++)

    cout << arr[i] << " ";

  return 0;

}

三、插入排序法

插入排序法是另一种比较简单的排序方法,它通过将一个未排序项插入到已排序部分中正确的位置来进行排序。下面是一个使用插入排序法对数字进行排序的示例代码:


#include<iostream>

using namespace std;

void insertionsort(int arr[], int n){

  int i, key, j;

  for (i = 1; i < n; i++){

    key = arr[i];

    j = i - 1;

    while (j >= 0 && arr[j] > key){

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

      j = j - 1;

    }

    arr[j + 1] = key;

  }

}

int main(){

  int arr[] = 6 ;

  int n = sizeof(arr) / sizeof(arr[0]);

  insertionsort(arr, n);

  cout << "排序后的数组为: \n";

  for (int i = 0; i < n; i++)

    cout << arr[i] << " ";

  return 0;

}

总结:

在C++中,有多种排序方法可以对数字进行排序,其中包括快速排序法、选择排序法、插入排序法等。每种排序方法都有其优点和缺点,开发者可以根据具体情况选择合适的算法来进行数字排序。

  
  

评论区

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