冒泡排序是属于交换排序的一种方法。
给定一个数组array[]={2,4,6,1,3},对它进行升序排序。
冒泡排序简介
冒泡排序的方法就是要在每趟排序过程中比较相邻的两个元素,即将小的放在前面,大的放在后面。
原数组{2,4,6,1,3}
第一次循环(将数组中最大的放到最后面)
- 将2和4进行比较,2<4,所以排序之后为[2,4,6,1,3]
- 将4和6进行比较,4<6,所以排序之后为[2,4,6,1,3]
- 将6和1进行比较,6>1,进行交换,排序之后为[2,4,1,6,3]
- 将6和3进行比较,6>3,进行交换,排序之后为[2,4,1,3,6]
第二次循环,此时的数组为[2,4,1,3,6]。我们已将最大的数放到数组的最后一个位置。
- 将2和4进行比较,2<4,所以排序之后为[2,4,1,3,6]。
- 将4和1进行比较,4>1,进行交换,排序之后为[2,1,4,3,6]。
- 将4和3进行比较,4>3,进行交换,排序之后为[2,1,3,4,6]
…如此进行循环。
冒泡排序算法的性能:
冒泡排序代码(c++)
#include<iostream>
#include<cmath>
using namespace std;
void swap(int array[],int i,int j);
void print(int array[],int len);
int main()
{
int a[]={1,3,5,2,4,9};
int len=sizeof(a) / sizeof(a[0]);
for(int i=0;i<len-1;i++) //冒泡排序
{
for(int j=0;j<len-1-i;j++)
{
if(a[j]>a[j+1])
{
swap(a,j,j+1);
}
}
}
print(a,len);
return 0;
}
void swap(int array[],int i,int j)
{
int temp=array[i];
array[i]=array[j];
array[j]=temp;
}
void print(int array[],int n)
{
cout<<"排序后的数组"<<endl;
for(int i=0;i<n-1;i++)
{
cout<<array[i]<<" ";
}
cout<<endl;
}