在前面我们介绍了sort排序函数的使用,按理说,我们没有必要在代码中使用其他的排序方法,但是,在一些情况下,我们只能使用冒泡排序法,而且,冒泡排序法作为一种十分重要的排序方法,其中涉及的思想也十分值得我们学习。
算法:
简单说,冒泡排序法就是在每次排序时两两交换,不断地将较大的一个转移到最后一个。假设有n个元素需要排列,那么经过n-1趟排序后数组有序,每趟排序后,待排序的数组个数减一。
举例:
假设有一组数据 10,12,15,35,25,28,利用冒泡排序后输
出。
代码1:(冒泡排序法进行排序)
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n;
cout<<"请输入要排序的元素个数:";
cin>>n;
int a[n];
cout<<"请输入要排序的元素:";
for(int b=0;b<n;b++)
cin>>a[b];
for(int i=1;i<n;i++) //进行n-1次排序
{
for(int j=0;j<n-i;j++) //每次排序的元素个数相比较上一次减一
{
if(a[j]>a[j+1])
swap(a[j],a[j+1]); //进行比较后,较大者后移
}
}
cout<<"排序后的数字为:" ;
for(int c=0;c<n;c++)
cout<<a[c]<<" ";
return 0;
}
运行结果如下:
代码2:(sort函数进行排序)
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n;
cout<<"请输入要排序的元素个数:";
cin>>n;
int a[n];
cout<<"请输入要排序的元素:";
for(int b=0;b<n;b++)
cin>>a[b];
sort(a,a+7);
for(int i=0;i<7;i++)
cout<<a[i]<<" ";
cout<<"排序后的数字为:" ;
for(int c=0;c<n;c++)
{
cout<<a[c]<<" ";
}
return 0;
附注:
想在在代码后面标记一下,可以在代码后面加“//”;对于一段代码不不想要但又不想删除,我们可以在前后分别加"/*“和 " */”。