21xrx.com
2024-12-26 15:42:10 Thursday
登录
文章检索 我的文章 写文章
C++ 数组排序方法
2023-07-08 12:34:27 深夜i     --     --
C++ 数组 排序方法

在C++中,数组排序是一个非常常见的操作。在实际应用中,我们经常需要对一组数据进行排序,以便更有效地处理和分析。C++提供了多种排序算法。这篇文章将介绍C++中常用的一些数组排序方法。

1. 冒泡排序

冒泡排序是一种简单的排序算法,它的原理很容易理解。该算法会重复地遍历待排序的数组,每次比较相邻的元素,如果它们的顺序错误就交换它们。重复该过程直到整个数组排序完成。

示例代码:


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. 快速排序

快速排序是一种高效的排序算法,它的基本思想是选择一个基准元素,将数组分成两部分,使得左边的元素小于基准元素,右边的元素大于基准元素。然后递归地对左右两个子数组进行快速排序。

示例代码:


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

  }

}

3. 插入排序

插入排序是一种简单直观的排序算法,它的基本思想是将一个元素插入已经排好序的数组中。插入排序从第二个元素开始,将它与前面的元素比较,如果前面的元素比它大,就将前面的元素后移一位,直到找到合适的位置将其插入。

示例代码:


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;

  }

}

以上是C++中常用的三种排序算法,在实际应用中我们需要根据不同的情况选择不同的排序算法。如果需要对大量数据进行排序,快速排序是一个不错的选择。如果数组已经近乎有序,插入排序会比其他算法更快。无论选择哪一种算法,良好的程序设计和算法实现都是提高排序效率和程序可读性的关键。

  
  

评论区

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