21xrx.com
2024-12-26 16:56:10 Thursday
登录
文章检索 我的文章 写文章
C++排序算法代码
2023-07-06 17:40:22 深夜i     --     --
C++ 排序算法 代码

C++是一种高效的编程语言,它的排序算法也是非常出色的,可以帮助开发者快速处理大量的数据。下面是C++中常用的几种排序算法代码:

1. 冒泡排序

冒泡排序是一种简单的排序算法,它会重复遍历要排序的数列,每次比较两个相邻的元素,如果顺序错误就交换它们的位置。

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

  int i, j;

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

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

    if (arr[j] > arr[j+1])

      swap(arr[j], arr[j+1]);

}

2. 选择排序

选择排序是一种简单和直观的排序算法,它从未排序的数据中找出最小的值并将其放到已排序数据的末尾。

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

  }

}

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;

  }

}

4. 快速排序

快速排序是一种排序算法,使用分治的思想将整个数组分成两个部分,分别排序后合并,重复这一过程直到整个数组排好序。

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

  }

}

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

}

总之,以上这些排序算法是C++中常用的,可以帮助处理大量数据,让程序运行更加高效。开发者可以根据数据量和数据类型来选择适合的排序算法,从而提高算法的效率。

  
  

评论区

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