置頂
冒泡排序的問題
void bubblesort(int k[],int n)
{
bool flag=1;
int count1=0, count2 = 0;
for(int i=0; i<n-1 && flag ; i++){
flag = 0;
for(int j=1; j<n-i; j++){
//for(int j=n-1; j>i; j){//問題在這
count1++;
if(k[j-1]> k[j]){
count2 ++;
flag =1;
swap(&k[j-1],&k[j]);
}
}
}
cout << count1 << ' ' << count2 << endl;
}
我比較了兩個for(一個從低到高,一個從高到低)
發現效率是不同的(效果依樣,也就是count2一樣,可是count1卻不同)
我想不透是為什麼,想請各位解惑...
(這邊flag是為了如果整串搜尋都沒有交換的話就提早結束的flag)
會員登入
(先登入會員才能回覆留言喔!)