代碼在下面,編譯運行后,有時候可以排序,有時候又不能排序,概率五五開,難道這個也看心情?


#include <stdio.h>
#include<stdlib.h>
#include<time.h>
#define MAXSIZE 255
/*冒泡排序*/
void BubbleSort(int a[],int n){
int i,j,temp;
int flag=0;
for(i=1;i<n;i++){
for(j=1;j<n-i+1;j++){
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
flag=1;
}
if(flag==0) return;
}
}
}
int main(){
srand(time(NULL));
int length=10;
int i,J;
int k=1;
int a[MAXSIZE];
for(i=1;i<=length;i++){
a[i]=rand()%101;
}
printf("排序前:");
for (i=1;i<=length;i++){
printf("%d\t",a[i]);
}
putchar('\n');
printf("排序后:");
BubbleSort(a,length);
for (i=1;i<=length;i++){
printf("%d\t",a[i]);
}
putchar('\n');
return 0;
}
uj5u.com熱心網友回復:
這個要看臉
你還是回回爐,好好看看冒泡吧,所有的書上都有的
你那個flag的作用好好研究研究
uj5u.com熱心網友回復:
在 BubbleSort中,你這flag干啥用的~~if(flag==0) return; 這句刪掉就好了
uj5u.com熱心網友回復:
的確,這個flag完全沒有用,不知道寫來是干嘛的轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/113130.html
標籤:C語言
上一篇:求大神看看,用vc6輸出
下一篇:應輸入
