开发工具 Dev-c++
#include <iostream>
#include<stdlib.h>
#include<time.h>
#define random(x) (rand()%x)
using namespace std;
#define MAX_LEN 10
//main入口
int main(int argc, char** argv) {
//变量声明和初始化
int i,j,temp,len;
bool bSwap;
//产生随机数(值为0~100)
int a_Chaos[MAX_LEN];
srand((int)time(0));
for(int x=0;x<MAX_LEN;x++){
a_Chaos[x] = random(100);
cout<<"随机数x"<<x<<"值是"<<a_Chaos[x]<<endl;
}
//获取数组的长度,这边用动态获取,以便于是固定数组而不是随机数组
len = sizeof(a_Chaos)/sizeof(a_Chaos[0]);
//冒泡排序
for(i=0; i<len; i++){
bSwap = false;
//从高位往下递减,使最大的数排在数组的最后,大端排序
for(j=len-1; j>i; j--){ //数组下标从0开始所以要减1,j>i用于减少排序次数
//对比下前一个数有没比后一个数大 有的话就交换
if(a_Chaos[j] < a_Chaos[j-1]){ //修改小于可以修改排序的方向
temp = a_Chaos[j];
a_Chaos[j] = a_Chaos[j-1];
a_Chaos[j-1] = temp;
bSwap = true;
}
}
//假如没有发生交换,那说明已经是有序的了
if(!bSwap){
break;
}
}
//用于显示数组
for(i=0; i<len; i++){
cout<<"冒泡排序后数组a_Chaos["<<i<<"]的值是 "<<a_Chaos[i]<<endl;
}
return 0;
}
配上冒泡算法的动态图