排序算法之冒泡排序

来源:互联网 发布:网络带给我们的坏处 编辑:程序博客网 时间:2024/06/04 19:20

最近在学习c++方面的知识,想在这里和大家分享下我学到的知识,也想自己做个总结,谢谢各位的指导和建议,目前还只是新手,还请多多指教


最简单的要求:编写一个程序,实现冒泡算法

冒泡算法原理:

1.比较相邻的元素。如果第一个比第二大,就交换他们两个。

2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该是最大的。

3.针对所有的元素重复以上的步骤,除了最后一个。

4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要排序。


考虑:冒泡算法就是每一次循环把最大的元素移动在最后,第二次循环则是把第二大的数移动到倒数第二的位置,依次通过n-1次的循环实现数组的排序;

#include <iostream>
using namespace std;
#define SIZE 6
void bubble_sort(int a[],int n)
{
    int i,j,temp;
    for(i=0;i<n-1;i++)
    {
       for(j=0;j<n-1-i;j++)
        {
            if(a[j+1]<a[j])
            {
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;  
            }
        }
     }
}
int main()
{
    int a[]={2,4,6,1,3,5};
    bubble_sort(a,SIZE);
    for(int i=0;i<SIZE;i++)
    {   
       cout<<a[i]<<" ";
    }
    cout<<endl;
    system("pause");
    return 0;
}

其中输出结果如下图所示:


到此冒泡排序算法实现完毕,谢谢各位!

1 0
原创粉丝点击