冒泡排序算法
冒泡排序:
通过每一轮的比较找到最大(最小)的数,最后直到比较数组长度的轮数后,得到升序(降序)排列。
每一轮比较都是数组的遍历到的数字与之后的一个数字进行比较(除去已经通过之前的比较找到的部分升序(降序)排列),如果当前的数字大于(小于)后一个数字就进行交换,然后数组向后遍历一个数字。
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;
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。