思路:将第一个数依次与所有后面数据比较,若后面数据较小,与第一个数交换,直到这一轮比较
完毕,这样结果第一个数就是数组里最小的数;
从第二个数开始,依次与后面所有的数比较,方法跟上面一样,这样一轮下来第二个位子
存放了第二小的数,以此类推。
经过n-1轮比较,小的数就被依次排到最前,像冒泡一样,故名为冒泡排序Bubble Sort。
public class BubbleSort {private static void bubbleSort(int [] nums){for (int i = 0; i < nums.length -1; i++) {for (int j = i + 1; j < nums.length; j++) {if (nums[i] > nums[j]) {swap(nums, i, j);}}}}private static void swap(int [] nums,int i,int j){int temp = nums[i];nums[i] = nums[j];nums[j] = temp;}public static void main(String[] args){int [] nums = {3,5,2,8,9,434};bubbleSort(nums);for (int i = 0; i < nums.length; i++) {System.out.print(nums[i] + " ");}}}
跟同学交流,说这不叫正宗的冒泡,冒泡是两两相邻比较~好吧,正宗好冒泡:
public
void
sort(
int
[] nums) {
int
temp =
0
;
for
(
int
i =
nums
.length - 1
; i >
0
; --i) {
for
(
int
j =
0
; j < i; ++j) {
if
(
nums
[j +1
] <
nums
[j]) {
temp =
nums
[j];
nums
[j] =nums
[j +1
];
nums
[j +
1
] = temp;
}
}
}
}
当你感到悲哀痛苦时,最好是去学些什么东西。