21xrx.com
2024-11-22 03:08:54 Friday
登录
文章检索 我的文章 写文章
C++语言实现冒泡算法
2023-07-07 22:08:22 深夜i     --     --
C++语言 冒泡算法 实现

C++语言是一种高级编程语言,它支持多种编程范式,包括面向对象、过程式和泛型编程。而冒泡排序算法是一种简单的排序算法,它的基本思路是对一个数组中的元素两两比较,如果顺序不对就交换它们的位置,以此类推,直到整个数组排序完成。

冒泡排序算法最基本的实现是使用两个嵌套的循环,外层循环控制比较的轮数,内层循环控制每轮比较的次数。具体实现代码如下:


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;

   }

  }

 }

}

上述代码使用了一个额外的变量temp用来交换数组中的元素,并且比较大小时使用的是arr[j]和arr[j+1],这种写法虽然简单,但可能会对代码的可读性造成一些影响。

为了提高代码的可读性,我们可以使用另一种写法,将比较大小的操作和元素交换的操作分离开来。具体实现代码如下:


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

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

  bool flag = false;

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

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

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

    flag = true;

   }

  }

  if (!flag)

   break;

  

 }

}

上述代码使用了一个bool型的变量flag来判断当前的数组是否已经排好序,如果已经排好序,就直接退出循环。同时使用了一个STL标准库中的swap函数来交换数组中的元素,这样可以避免使用临时变量temp。

总之,冒泡排序算法是一个简单而有效的排序算法,在实际应用中,我们可以根据需要加以修改和优化,以适应不同的需求。

  
  

评论区

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