21xrx.com
2024-11-22 11:27:54 Friday
登录
文章检索 我的文章 写文章
C++排序算法详解
2023-06-22 16:18:36 深夜i     --     --
C++ 排序算法 详解

C++是一种常用的编程语言,它内置了许多常用的排序算法,包括冒泡排序、选择排序、插入排序、快速排序等等。在C++语言中使用这些排序算法能够更快速、更有效地进行排序操作,提高程序运行效率和排序质量,让编程更加高效。

1. 冒泡排序

冒泡排序是一种比较简单的排序方法,它的原理是将相邻两个元素进行比较交换位置。在C++语言中实现冒泡排序的代码可以如下:


void BubbleSort(int a[], int n)

{

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

  {

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

    {

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

      {

        int temp = a[j];

        a[j] = a[j+1];

        a[j+1] = temp;

      }

    }

  }

}

2. 选择排序

选择排序是一种基于比较的排序算法,它的原理是依次找到数组中的最小元素,然后将它与数组的第一个元素进行交换,接着在剩下的元素中找到最小元素,然后将它与数组的第二个元素进行交换,以此类推,直到数组被完全排序。在C++语言中实现选择排序的代码可以如下:


void SelectionSort(int a[], int n)

{

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

  {

    int minIndex = i;

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

    {

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

      

        minIndex = j;

      

    }

    int temp = a[i];

    a[i] = a[minIndex];

    a[minIndex] = temp;

  }

}

3. 插入排序

插入排序是一种基于交换的排序算法,它的原理是将数组中的元素逐个插入到已经排好序的序列中。在C++语言中实现插入排序的代码可以如下:


void InsertionSort(int a[], int n)

{

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

  {

    int key = a[i];

    int j = i - 1;

    while (j >= 0 && a[j] > key)

    {

      a[j+1] = a[j];

      j--;

    }

    a[j+1] = key;

  }

}

4. 快速排序

快速排序是一种基于分治思想的排序算法,它的原理是将数组划分为两个子数组,然后对这两个子数组分别进行排序,最终将这两个子数组合并成一个有序数组。在C++语言中实现快速排序的代码可以如下:


void QuickSort(int a[], int left, int right)

{

  if (left >= right)

    return;

  int i = left, j = right, pivot = a[(left + right) / 2];

  while (i <= j)

  {

    while (a[i] < pivot)

      i++;

    while (a[j] > pivot)

      j--;

    if (i <= j)

    {

      int temp = a[i];

      a[i] = a[j];

      a[j] = temp;

      i++;

      j--;

    }

  }

  QuickSort(a, left, j);

  QuickSort(a, i, right);

}

综上所述,冒泡排序、选择排序、插入排序、快速排序是C++语言中常用的排序算法。在实际编程中,我们可以根据应用场景的需要选择不同的算法,从而达到更好的排序效果。

  
  

评论区

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