不論是氣泡排列 還是xx排列
講到排列 最好是用 陣列去做
數值的交換不用到暫存變數的話
可以用
如果 a 大於 b 然後
a = a xor b
b = a xor b
a = a xor b
這就是上面 joebin 提到的
用c++的簡寫特性
就可寫成
a^=b^=a^=b;
======================
氣泡排列是個人認為最簡單易懂
且容易掌控花費時間的一種排列方式
語法:
#include <cstdlib>
#include <iostream>
using namespace std;
void swap(int &i, int &j){
/*
i=i^j;
j=i^j;
i=i^j;
*/
i^=j^=i^=j;
}
int main(int argc, char *argv[])
{
int aTmp[]={3,5,2};
int i,j;
cout << "Before swap...";
cout << "a=" << aTmp[0] << ",b=" << aTmp[1] << ",c=" << aTmp[2] << endl;
cout << "After swap...";
for (i=0; i<(3-1); i++){
for (j=(i+1); j<3; j++){
if (aTmp[i] > aTmp[j]) swap(aTmp[i], aTmp[j]);
}
}
cout << "a=" << aTmp[0] << ",b=" << aTmp[1] <<",c=" << aTmp[2] << endl;
system("pause");
return 0;
}