冒泡排序
作用:最常用的排序算法,对数组内元素进行排序
1.比较相邻元素。若第一个比第二个大,就交换他们两个
2.对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值。
3.重复以上的步骤,每次比较次数—1,直到不需要比较
排序总轮数=元素个数-1
每轮对比的次数=元素个数-排序轮数-1
//利用冒泡排序实现升序序列
int arr[9]={4,2,8,0,5,7,1,3,9};
cout<<“排序前:”<<endl;
for(int i=0;i<9;i++)
{
cout<<arr[i]<<" ";
}
cout<<endl;
//开始冒泡排序
//总共排序轮数为 元素个数-1
for(int i=0;i<9-1;i++)
{
//内层循环对比 次数=元素个数-当前轮数-1
for(int j=0;j<9-i-1;j++)
{
//如果第一个数字比第二个数字大,交换两个数字
if(arr[j]>arr[j+1])
{
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
//排序后结果
cout<<“排序后:”<<endl;
for(int i=0;i<9;i++)
{
cout<<arr[i]<<" ";
}
cout<<endl;
#include
using namespace std;
void input(inta);
void sort(inta);
void output(int*a);
int main()
{
int a[10];
input(a);
sort(a);
output(a);
return 0;
}
void input(int*a)
{
cout<<“请输入十个整数:”;
for(int i=0;i<10;i++)
{
cin>>a[i];
}
}
void sort(int*a)
{
for(int i=0;i<10;i++)
{
for(int j=0;j<10-i-1;j++)
{
if(a[j]>a[j+1])
{
int temp;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
void output(int*a)
{
cout<<“冒泡排序后的结果:”;
for(int i=0;i<10;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
}