冒泡法排序的思路: 假设有N个数字进行比较排序。
1.把第1位和第2位进行比较,如果比第2位大的,就与第2位交换位置。(比较次数为:1)。
2.把第2位和第3位进行比较,如果比第3位大的,就与第3位交换位置。(比较次数为:1)。
3.把第3位和第4位进行比较,如果比第4位大的,就与第4位交换位置。(比较次数为:1)。
······ ······
N-1.把第N-1位和第N位进行比较,如果比第N位大的,就与第N位交换位置。(比较次数为:1)。
以上步骤得到的结果是把最大的数据放到了最后一位,总比较次数为:N-1次。
再进行上述步骤,只不过不用比较第N-1位和第N位了,只需要进行比较第N-2和第N-1位,总比较次数为:N-2次。
······ ······
则通过上述分析:选择排序需要两层循环,第一层循环为N-1次,第二层循环为N-第一层循环数-1次。
java核心代码如下:
int[] b = { 18, 62, 68, 82, 65, 9, 19, 18 };
int tempb;
for (int j = 0; j < b.length - 1; j++) {
for (int i = 0; i < b.length - j - 1; i++) {
if (b[i] > b[i + 1]) {
tempb = b[i + 1];
b[i + 1] = b[i];
b[i] = tempb;
}
}
}
for (int i = 0; i < b.length; i++) {
System.out.println(b[i]);
}
输出结果:
9
18
18
19
62
65
68
82