int[] array = { 4, 7, 1, 5, 2, 6 };
for (int i = 0; i < array.length; i++)
{
for (int j = i; j > 0 && array[j - 1] > array[j]; j--)
{
array[j] = array[j - 1] + array[j];
array[j - 1] = array[j] - array[j - 1];
array[j] = array[j] - array[j - 1];
}
}
插入排序,上面的交换是不用中间变量,但是也存在一个问题,会存在可能溢出的情况,因为a=a+b可能导致溢出,另外一种不用中间变量的方式是采用异或:a=a^b ,b=a^b,a=a^b 这种方式不适合于浮点数,总之,只是采用了不用任何额外的空间实现交换数据而已。。。重点还是在算法本身。。