码迷,mamicode.com
首页 > 编程语言 > 详细

冒泡排序算法

时间:2015-04-19 11:21:01      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:

冒泡排序:

 

通过每一轮的比较找到最大(最小)的数,最后直到比较数组长度的轮数后,得到升序(降序)排列。

 

每一轮比较都是数组的遍历到的数字与之后的一个数字进行比较(除去已经通过之前的比较找到的部分升序(降序)排列),如果当前的数字大于(小于)后一个数字就进行交换,然后数组向后遍历一个数字。

 

C++程序:

/*  升序排列演示 */

#include<iostream>

using namespace std;

const int NUMBER=8;

int main() {  

  int arr[NUMBER]={0,2,4,1,10,34,3,5};

   int i=0,j=0;//用于遍历数组    

  //输出冒泡排序前的数组  

  cout<<"升序排列前的数组为:"<<endl;  

  for(i=0;i!=NUMBER;i++)   

    cout<<arr[i]<<" ";  cout<<endl;

   int k;//用于储存

   int m=NUMBER;//用于控制每一轮的遍历次数

   int n=0;//循环的次数    

  //进行降序排列

   for(i=0;i!=NUMBER;i++)

   {   

    m--;//用于除去已经排列好的数组,第一轮两两比较次数是数组长度减一  

     for(j=0;j!=m;j++)  

     {    

      if(arr[j]>arr[j+1])   

       {     

        k=arr[j+1];     

        arr[j+1]=arr[j];     

        arr[j]=k;    

       }   

       n++;  

     }  

  }  

   //输出排序后数组  

  cout<<"升序排列后的数组为:"<<endl;  

  for(i=0;i!=NUMBER;i++)   cout<<arr[i]<<" ";  

  cout<<endl;

  cout<<"循环次数为:"<<n<<endl;

   return 0;

}

 

冒泡排序算法

标签:

原文地址:http://www.cnblogs.com/zjx-hqu/p/4438746.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!