冒泡排序算法

冒泡排序:

 

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

 

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

 

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;

}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。