给定一个数组{3,4,2,1},进行从小到大排序
- 思路:相邻两个数比较,循环(n-1)轮,每轮循环(n-1-i)次。
//===第一轮循环===
//3421---------------3和4比较,无需交换
//3241---------------4和2比较,4>2,交换位置
//3214---------------4和1比较,4>1,交换位置,此时,已找到最大数
//===第二轮循环===
//2314---------------2和3比较,无需交换
//2134---------------3和1比较,3>1,交换位置,此时已找到第二大的数
//2134---------------3和4比较,无需比较,因为上一轮已找到最大数
//===第三轮循环===此轮如上类推,不写了
//1234
//1234
//1234
- 代码如下:
public static int[] paixu(int[] c) {
for (int i = 0; i < c.length; i++) { //控制循环多少轮
for (int j = 0; j < c.length-1-i; j++) { //控制相邻两个数循环多少次,-i是因为每一轮都找到了一个最大数
if (c[j]>c[j+1]) {
int tmp = c[j] ;
c[j] = c[j+1];
c[j+1] = tmp;
}
}
}
return c;
}