数组排序以及面向对象解释
数组排序
1.冒泡排序
int[] data = {45,22,73,16};
//从小到大
45 22 73 16
[0] [1] [2] [3]
[0] vs [1] 前大后小 需要交换
22 45 73 16
[0] [1] [2] [3]
[1] vs [2] 前小后大 不需要交换
22 45 73 16
[0] [1] [2] [3]
[2] vs [3] 前大后小 需要交换
22 45 16 73
[0] [1] [2] [3]
[3] vs [4] 前大后小 需要交换
//到此已经找出了一个最大值,还需要2次才可以
//即需要找(数组长度-1)次。(外层循环)
//内层循环第一次比较4个元素,第二次需要比较3个元素以此类推
详细代码:
for(int x = 0;x < data.length - 1;x++){
for(int y = 0;y < data.length - 1 - x;y++){ //减x是为了较少不必要的循环,可删去
if(data[y] > data[y + 1]){
data[y] = data[y] ^ data[y + 1];
data[y + 1] = data[y] ^ data[y + 1];
data[y] = data[y] ^ data[y + 1];
}
}
}