加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C++实现冒泡排序(源代码)

(2011-10-20 17:32:01)
标签:

冒泡排序

数组

it

分类: C/C 语言知识

冒泡排序的基本思想:从数组的第一个数开始,相邻两数进行比较,经过交换,小的数放在前面,大的数放在后面,一直到最后一个数与倒数第二个数比较完,这样比较一轮后,数组中最大的数“下沉”到了数组的最后;然后,新的一轮的比较又是从第一个数开始。。。。如果数组中有N个元素,则共需要比较N-1轮。

形象地描述这种排序方法:每次比较都会使较小的值像气泡一样“上浮”,而较大的值逐渐“下沉”!

#include<iostream>
using namespace std;
void bubbleSort(int a[],int size);
int main()
{
   int array[]={34,65,12,43,67,5,78,10,3,70},k;
   int len=sizeof(array)/sizeof(int);
   cout<<"The orginal array are:"<<endl;
   for(k=0;k<len;k++)
      cout<<array[k]<<",";
   cout<<endl;
   bubbleSort(array,len);
   cout<<"The sorted array are:<<endl";
   for(k=0;k<len;k++)
      cout<<array[k]<<",";
   cout<<endl;
   system("pause");
   return 0;
}

void bubbleSort(int a[],int size)
{
     int temp;
     for(int pass=1;pass<size;pass++)
     {
        for(int k=0;k<size-pass;k++) 
           if(a[k]>a[k+1])
           {
                temp=a[k];
                a[k]=a[k+1];
                a[k+1]=temp;       
           }
        cout<<"第"<<pass<<"轮排序后:";
        for(int i=0;i<size;i++)
          cout<<a[i]<<",";
        cout<<endl;
     }
}

运行示意图:

C++实现冒泡排序(源代码)
从结果中看出,经过8轮比较后数组就已经按升序排好序。只有在最坏情况下,即全部元素从大到小排列时,才需要全部9轮的排序。
冒泡排序不论情况好坏,都必须进行所有轮的比较,运行速度较慢!

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有