[問題] 冒泡排序的問題
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)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.25.105
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1410181070.A.EA3.html
→
09/08 21:08, , 1F
09/08 21:08, 1F
→
09/08 21:11, , 2F
09/08 21:11, 2F
→
09/08 21:13, , 3F
09/08 21:13, 3F
→
09/08 21:17, , 4F
09/08 21:17, 4F
→
09/08 21:17, , 5F
09/08 21:17, 5F
→
09/08 21:36, , 6F
09/08 21:36, 6F
→
09/08 21:38, , 7F
09/08 21:38, 7F
推
09/08 21:50, , 8F
09/08 21:50, 8F
→
09/08 21:52, , 9F
09/08 21:52, 9F
→
09/08 21:54, , 10F
09/08 21:54, 10F
→
09/08 21:56, , 11F
09/08 21:56, 11F