開發工具 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;
}
配上冒泡算法的動態圖