21xrx.com
2024-12-23 01:50:54 Monday
登录
文章检索 我的文章 写文章
C++ 数组冒泡排序算法实现
2023-06-30 14:08:28 深夜i     --     --
C++语言 数组 冒泡排序算法 实现 排序

C++ 数组冒泡排序算法是一种简单但常用的排序算法,它可以将一个数组按一定的顺序排列。本文将介绍C++中数组冒泡排序算法的实现方法和详细步骤。

首先,我们需要明确什么是冒泡排序。冒泡排序是一种交换排序算法,它重复地遍历数组,每遍历一次就将相邻的两个元素进行比较并交换,这样每一轮遍历结束,都会使一个元素达到其最终的排序位置。冒泡排序的时间复杂度为O(n²)。

接下来,我们来看一下C++代码实现。


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

  for (int i = 0; i < len - 1; i++) { //外层循环控制比较的轮数

    bool flag = false; // 设置标识位,如果一轮下来没有交换,则可以说明数组已排好序

    for (int j = 0; j < len - i - 1; j++) { //内层循环控制每轮比较的次数

      if (arr[j] > arr[j + 1]) { //如果前一个元素大于后一个元素,则交换位置

        int tmp = arr[j];

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

        arr[j + 1] = tmp;

        flag = true; //说明此轮发生了交换

      }

    }

    if (!flag) break; //如果一轮下来没有发生交换,则数组已排好序,可以直接跳出循环

  }

}

以上代码中,我们传入了待排序数组arr和数组长度len。首先,我们从外层循环开始,控制比较的轮数。在每一轮比较中,我们从内层循环开始,控制每轮比较的次数。通过比较每个相邻的元素,如果前一个元素大于后一个元素,则交换它们的位置。这样一轮下来,数组中最大的元素就会被交换到最后面,也就是排好序的位置。在每轮比较中,我们使用了一个标识位来判断是否发生了交换。如果没有发生交换,说明数组已排好序,可以直接跳出循环。

最后,我们在主函数中调用上面的bubbleSort()函数来实现冒泡排序。代码如下:


int main() {

  int arr[] = 2;

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

  bubbleSort(arr, len);

  cout << "排序后的数组:";

  for (int i = 0; i < len; i++) {

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

  }

  return 0;

}

以上代码中,我们创建了一个待排序的数组arr,然后通过sizeof()函数和数组元素的大小来计算数组长度len。接着,我们将数组和数组长度传递给bubbleSort()函数,进行冒泡排序。最后,我们使用for循环输出排序后的数组。

总之,上述代码实现了C++的冒泡排序算法。在实际应用中,冒泡排序在处理小量数据时表现出较高的效率,但对于大量数据则会显得低效。所以,在实际应用中,一般采用更高效的排序算法来处理大量数据。

  
  

评论区

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