介绍
在本实验中,我们将学习如何用 C++ 编写算法来实现冒泡排序技术。冒泡排序是最流行且简单的排序技术之一,它通过比较数组中相邻的两个元素,并在它们的顺序不正确时交换它们的位置。
在本实验中,我们将学习如何用 C++ 编写算法来实现冒泡排序技术。冒泡排序是最流行且简单的排序技术之一,它通过比较数组中相邻的两个元素,并在它们的顺序不正确时交换它们的位置。
我们将使用以下命令在 ~/project 目录下创建一个名为 main.cpp 的新文件:
touch ~/project/main.cpp
首先,我们需要声明程序所需的变量和头文件。在这一步中,我们将包含头文件 iostream 并定义命名空间 std。
#include<iostream>
using namespace std;
在这里,我们将在 C++ 程序中声明一个名为 bubble_sort 的函数,该函数接受待排序的数组和数组的大小。该函数将包含冒泡排序技术的实现,通过使用 for 循环、交换以及 if/else 语句来完成排序。
int bubble_sort(int n,int array[]){
int temp;
for(int i=0;i<n-1;i++){
for(int j=0;j<n-i-1;j--){
if(array[j]>array[j+1]){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
return 0;
}
在优化后的冒泡排序中,我们会在每一轮检查是否有元素被交换。如果在上一轮中没有发生交换,则说明数组已经排序完成。在这一步中,我们将实现 bubble_sort 函数来实现优化后的冒泡排序算法。该函数接受待排序的数组和数组的大小。
int bubble_sort(int n,int array[]){
int temp, flag;
for(int i=0;i<n-1;i++){
flag = 0;
for(int j=0;j<n-i-1;j++){
if(array[j]>array[j+1]){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
flag=1;
}
}
if(flag==0){
break;
}
}
return 0;
}
在这里,我们将定义主函数,其中声明待排序的数组及其大小。在这一步中,我们还将调用 bubble_sort 函数以升序排列数组。
int main(){
int arr[]={5,6,9,2,3};
int n = sizeof(arr)/(sizeof(arr[0]));
bubble_sort(n,arr);
cout<<"Elements after sorting of the array:- "<<endl;
for(int i=0;i<n;i++){
cout<<arr[i]<<" ";
}
return 0;
}
在这一步中,我们将在 Ubuntu 系统的终端中编译并运行代码。要编译代码,请输入以下命令:
g++ ~/project/main.cpp -o main
要运行代码,请输入以下命令:
./main
在本实验中,我们成功学习了如何使用 C++ 中的动态数组实现冒泡排序。我们还了解了一种优化的冒泡排序技术,该技术对某些特定但高效的数组非常有效。通过遵循上述教程,你可以使用 C++ 中的动态数组实现冒泡排序技术,以升序或降序排列数组。