21xrx.com
2024-12-22 22:36:00 Sunday
登录
文章检索 我的文章 写文章
C++中常见的排序算法代码
2023-07-05 02:25:25 深夜i     --     --
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]) {

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

      }

    }

  }

}

2. 选择排序

选择排序是一种简单但不稳定的排序算法,其基本思想是从未排序的数据中选择最小或最大的数,依次放到已排序的序列中。选择排序的代码实现如下:


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

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

    int minIndex = i;

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

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

        minIndex = j;

      

    }

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

  }

}

3. 插入排序

插入排序是一种简单且稳定的排序算法,其基本思想是将未排序的数据插入已排序的序列中。插入排序的代码实现如下:


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

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

    int j = i;

    while (j > 0 && arr[j] < arr[j-1]) {

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

      j--;

    }

  }

}

4. 快速排序

快速排序是一种常用的排序算法,其基本思想是通过分而治之的方法将无序的数据划分成独立的两个部分,以便对每个部分递归排序。快速排序的代码实现如下:


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

  if (left >= right) {

    return;

  }

  int pivot = arr[left];

  int i = left;

  int j = right;

  while (i < j) {

    while (i < j && arr[j] >= pivot) {

      j--;

    }

    arr[i] = arr[j];

    while (i < j && arr[i] <= pivot) {

      i++;

    }

    arr[j] = arr[i];

  }

  arr[i] = pivot;

  quickSort(arr, left, i - 1);

  quickSort(arr, i + 1, right);

}

以上就是C++中常见的排序算法和相关代码实现,其中冒泡排序、选择排序、插入排序是基础算法,快速排序则是效率较高的算法。需要根据不同的场景选择不同的排序算法来优化效率。

  
  

评论区

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