21xrx.com
2024-12-22 23:27:01 Sunday
登录
文章检索 我的文章 写文章
C++编程:实现起泡排序算法
2023-07-03 01:24:12 深夜i     --     --
C++ 编程 实现 起泡排序算法

起泡排序是一种经典的排序算法,它的原理是不断比较相邻的元素,如果它们的顺序不正确就交换它们的位置,直到整个序列都被排序为止。在本文中,我们将用C++编程语言实现起泡排序算法。

首先,我们需要定义一个排序函数,该函数将接收一个整数数组和该数组的长度,然后将对数组进行排序。下面是C++代码的框架:

void bubbleSort(int arr[], int n)

在接下来的代码中,我们将填充这个函数,以实现起泡排序算法。

在起泡排序中,我们需要嵌套两个循环。外部循环用于遍历数组中的所有元素,并在每次遍历中将最大的元素移动到数组的末尾。内部循环用于比较相邻的元素并根据需要交换它们的位置。下面是完整的代码实现:

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

      {

        int temp = arr[j];

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

        arr[j+1] = temp;

      }

    }

  }

}

让我们来分解一下这个函数的代码:

- 我们使用两个循环,外部循环用于遍历数组中的所有元素,并在每次遍历中将最大的元素移动到数组的末尾。

- 内部循环用于比较相邻的元素并根据需要交换它们的位置。如果当前元素大于下一个元素,则将它们的位置交换,这样最大的元素就会逐渐“冒泡”到数组的末尾。

- 第二个循环的范围在每次迭代中都会减少,这是因为我们每次都可以将最大的元素放到数组的末尾,因此不需要再考虑这个元素的位置。

最后,我们可以测试我们的算法。下面是一个完整的示例程序,它创建一个整数数组并对其进行排序:

#include

using namespace std;

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

      {

        int temp = arr[j];

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

        arr[j+1] = temp;

      }

    }

  }

}

int main()

{

  int arr[] = 34;

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

  bubbleSort(arr, n);

  cout << "Sorted array: \n";

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

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

  cout << endl;

  return 0;

}

输出结果:

Sorted array:

11 12 22 25 34 64 90

我们可以看到,数组已被正确排序。

在本文中,我们学习了如何使用C++编程语言实现起泡排序算法。虽然这是一个非常简单的算法,但它仍然是非常有用的,并且在各种类型的应用程序中都广泛使用。希望本篇文章能对你有所帮助!

  
  

评论区

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