算法排序系列(二):冒泡排序
1. 需求 :
有5个数字,请将他们按照从小到大、从大到小的顺序排列
2. 思路 :(用冒泡排序)
1. 小时候体育课按大小个排队就是冒泡排序(两两对比换位置);
2. 从大到小就是第一轮两两对比找出最小的,依次第二轮...,第(n-1)轮....;
3. 从小到大就是就是第一轮两两对比找出最大的,依次第二轮...,第(n-1)轮....
示例:(下面是从小到大排序,从大到小排序同理)
3. 程序 :(JAVA)
public class test {
public static void main(String[] args) {
// 需要排序的数,大于等于0,小于等于10
int[] nums = { 5, 9, 8, 5, 3 };
// 获取n
int len = nums.length;
int j = 0;
// 从小到大排序
// 循环(n-1)
while (j <= len - 1) {
// 循环两两对比
for (int i = 1; i < len - j; i++) {
int tmp = 0;
if (nums[i - 1] > nums[i]) {
tmp = nums[i];
nums[i] = nums[i - 1];
nums[i - 1] = tmp;
}
}
j++;
}
System.out.print("从小到大排序:");
for (int i : nums) {
System.out.print(i + " ");
}
j = 0;
// 从大到小排序
// 循环(n-1)
while (j <= len - 1) {
// 循环两两对比
for (int i = 1; i < len - j; i++) {
int tmp = 0;
if (nums[i - 1] < nums[i]) {
tmp = nums[i];
nums[i] = nums[i - 1];
nums[i - 1] = tmp;
}
}
j++;
}
System.out.println();
System.out.print("从大到小排序:");
for (int i : nums) {
System.out.print(i + " ");
}
}
}
4. 结果 :
欢迎大家指正!